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

central stops receiving after sometime

Hi,

Central: nrf52840

peripheral: nrf52840

Connection interval (both min & max) = 10ms

ATT_MTU size: 52 bytes

Dle: 52+4 bytes

Connection event extension: enabled

Slave latency: 0

Connection supervision timeout: 4s

PHY: 1MBps

softdevice: 140

I'm transmitting 10 samples wrapped to 48 bytes as notification and hence set the ATT_MTU size to 52 bytes considering the overhead for notification to 3 bytes + 1 extra safe side. The issue is suddenly after 30 mins there is a disconnection and I get to see only EMPTY DATA PDU through nrf sniffer. However, I didn't notice anything as Connection Disconnection timeout or so. It's just after the last notification, I get to see only EMPTY DATA PDU and no samples at the UART(which is logged at the central) This is for a medical application. So I need to maintain this throughput with very low/0 latency and no potential disconnection. Your valuable suggestions will help me fix the problem.

J Link viewer logs

LOG

Thanks, Nivetha

Parents
  • This sentence kind of contradicts itself:

    "after 30 mins there is a disconnection and I get to see only EMPTY DATA PDU through nrf sniffer"
    

    If you continue to receive empty data PDUs you are not disconnected. It must be something in your code that causes the transfers to stop.

    1. Do you get any more logging info at the time when the problem appears?
    2. Is it always after 30 seconds or does the time frame vary?
    3. Is it the peripheral that sends UART over BLE to the central?
    4. How often do you transmit your 10 samples?
    5. Maybe you have a mechanism to prevent Softdevice buffer overflow that misbehaves?
Reply
  • This sentence kind of contradicts itself:

    "after 30 mins there is a disconnection and I get to see only EMPTY DATA PDU through nrf sniffer"
    

    If you continue to receive empty data PDUs you are not disconnected. It must be something in your code that causes the transfers to stop.

    1. Do you get any more logging info at the time when the problem appears?
    2. Is it always after 30 seconds or does the time frame vary?
    3. Is it the peripheral that sends UART over BLE to the central?
    4. How often do you transmit your 10 samples?
    5. Maybe you have a mechanism to prevent Softdevice buffer overflow that misbehaves?
Children
No Data
Related