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

SoftDevice v4.0.2 does not send ATT Write Response

I am using a nRF52832 custom board based on SDK11 and SD 4.0.2 configured as a peripheral with a GATT server.  I am seeing a case where the client is an Iphone XR iOS v13.2.3 and after the phone sends an ATT Write Request, the nRF does not send an ATT Write Response even though the request was ACKed on the link layer.  The phone then resends the ATT Write Request 5s later, which I believe is against the BT spec, and again no ATT Write Response is sent.  The nRF is not locked up because it can still initiate a link disconnect 5s later.  The nRF and phone are close to each other so there should be no packet loss issues.  This is the encrypted capture.  I cannot show the real data due to privacy issues.

The ATT Write Requests are at:

10:43:22 AM.094 010 800

10:43:28 AM.754 124 500

10:43:29 AM.594 144 800

The nRF disconnects the link at 10:43:34 AM.544 460 200 and continues normal operation.

Below is the normal case from 5min previous where the ATT Write Response is sent at 10:38:20 AM.371 047 700:

This case is very hard to reproduce and this is the only capture I have of it.  The result of this case is that my iOS app stops connecting to the nRF in the background.  Does anyone know why the nRF doesn't send the ATT Write Response?  Also, is there a way to prevent it from sending the Write Response so I can debug on the iOS side?  It seems to be entirely handled by the SD so I have no way to control it.  Does iOS send a special event or error code to the app when this case happens?

Parents Reply Children
No Data
Related