Hi there,
Im successfully sending 1.1mB om data from Android Samsung S9 or iPhone 11 Pro. My problem is the low throughput i achieve, its about 6.1kB/s on iPhone and about 3kB/s on my android. This is too slow and I cant get it any faster.
I started off with the ble_app_template och then adding my custom service using this example https://github.com/bjornspockeli/custom_ble_service_example
Im writing withResponse from my phone app. I read somewhere that when writing with response only one packet per CI is allowed. Is that correct?
Some of my parameters:
SDK 16
App is written in flutter_blue
main.c:
Min con interval: 7.5
Max con interval: 15
SlaveLatency: 0
in sdk_config.h:
NRF_SDH_BLE_GAP_DATA_LENGTH: 27 (tried with 251 with no difference)
NRF_SDH_BLE_GAP_EVENT_LENGTH 7 (tried with 400 no difference)
NRF_SDH_BLE_GATT_MAX_MTU_SIZE 247
When reading &p_ble_evt->evt.gap_evt.params.conn_param_update.conn_params im getting:
Min/max conn intervall 24ms (* 1.25) on iPhone and 39ms (*1.25) on android.
Im using notification on my custom service as flow control. I send one packet from app, nrf52 receives the packet and responds with an ACK, app receives this and send the next packet.
Should I handle this in some other way to achieve higher throughput?
If I would write without and response, is there any kind of checksum test going on or how would I know all the bits are correct?
Im pretty much out of ideas. Would really really appreciate some guidance.
Thanks in advance /Rasmus