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

Data loss while sending large data by notifications

log1.pcapHi, I am developing a peripheral application that can send around 68k of data in the notifications to the central Notifications are send at the frequency of 284 notifications per sec, but number of notifications are loss after sometime, At the central, only around 61k bytes are received. I have set min connection interval as 36ms and max connection interval as 75ms, slave latency is set 3 and connection supervision timeout is 4 sec.

I have increased number of bytes that are send only after NRF_SUCCESS is received in sd_ble_gatts_hvx, if BLE_ERROR_NO_TX_PACKETS is received as return code then notification will be send again on receiving BLE_EVT_TX_COMPLETE

Large chunk is loss almost after some time, I am attaching the sniffer log with it

I am using s132 v2.0 soft device

Parents
  • FormerMember
    0 FormerMember

    What do you mean by notifications are missing? Is some data lost, or is the transfer slower than expected? This blog post contains the number of packets per connection interval that various phones can handle.

    How do you handle the other error codes that can be returned from sd_ble_gatts_hvx(..)? The error codes NRF_ERROR_INVALID_STATE and NRF_ERROR_BUSY do also indicate that the system is busy or the system is currently in an invalid state.

    Update 06.12.2016: Could you use ble_app_uart_test_throughput.zip (SDK 12) to check if any data is lost with that example?

Reply
  • FormerMember
    0 FormerMember

    What do you mean by notifications are missing? Is some data lost, or is the transfer slower than expected? This blog post contains the number of packets per connection interval that various phones can handle.

    How do you handle the other error codes that can be returned from sd_ble_gatts_hvx(..)? The error codes NRF_ERROR_INVALID_STATE and NRF_ERROR_BUSY do also indicate that the system is busy or the system is currently in an invalid state.

    Update 06.12.2016: Could you use ble_app_uart_test_throughput.zip (SDK 12) to check if any data is lost with that example?

Children
Related