Disconnection after 30s on reconnection with custom service on phone

Setup:

- nRF52832 , Softdevice s132, gcc

- iPhone is the peripheral. A custom service is implemented **on** the iPhone.

On the nRF:

- `#define NRF_SDH_BLE_VS_UUID_COUNT 1`

- The custom service 128bits ID is registered on the softdevice via  `sd_ble_uuid_vs_add()`.

- It discovers the service with `ble_db_discovery_evt_register()`.

On the first connection (peer erased on device, device "forgotten" on iPhone), this appears to work.

On reconnection, after 30 seconds, the iOS bails with "Peer failed to respond to ATT value indication", and the device bails with a disconnection event error "0x13", which is BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION.

I am not using whitelisting.

If, instead of using my custom service, I use the iPhone's CTS or BAS service, it works well.

Parents
  • Hi Paul, 

    I would suggest to capture a sniffer trace so we know exactly what happened. Note that if the devices are paired, you need to use the sniffer to capture the initial pairing so that the sniffer can catch the keys. 

    From what you described, it's most likely that the application didn't send the confirmation back to the phone. Are you planning to do notification or indication ? For notification you don't need to confirm the message when with indication you need to confirm that you receive the message. Please have a look here.

Reply
  • Hi Paul, 

    I would suggest to capture a sniffer trace so we know exactly what happened. Note that if the devices are paired, you need to use the sniffer to capture the initial pairing so that the sniffer can catch the keys. 

    From what you described, it's most likely that the application didn't send the confirmation back to the phone. Are you planning to do notification or indication ? For notification you don't need to confirm the message when with indication you need to confirm that you receive the message. Please have a look here.

Children
Related