Hello,
nRFSD5 v16.0, softdevice v.7.0.1, nRF52840
We have an application where we receive data from mobile application whenever it writes to a certain UUID. The data is collected at nRF52 hardware end when BLE_GATTS_EVT_WRITE event is fired.
However, at longer distances, this data is received late, sometime it takes more than 5 seconds, which is understandable as the distance is too much and signal quality is poor and BLE stack sends lots of back and forth data. However, in the same scenario our mobile application received data sent acknowledgment after about 2 seconds. In the device firmware, I'm running a timer, while the mobile application also send time along-with the data. I calculate the difference between the two and know the time it takes to receive data at device end.
So my question is, while the nRF52 service gets data after 5 seconds, why mobile application gets an acknowledgment after 2 seconds. Theoretically both events should be fired at same time. Can you please tell me why this is happening?