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

Service Change Characteristic and the Pipe

I am using the nRF8001 and trying to do ANCS. After rebooting the Arduino / BLE Shield, I have to reset Bluetooth in iOS in order for ANCS to work again.

I was thinking that forcing iOS to redo service discovery would fix this. I have enabled the Service Change Characteristic and Pipe in nRFgo Studio.

In order to trigger a Service Discovery, do I have to manual send it? Something like this? lib_aci_send_data(PIPE_GATT_SERVICE_CHANGED_TX_ACK, buffer, 4);

Parents
  • The Service Changed Characteristic is a property of the GATT Service. In ANCS the GATT Server on the iOS device is used. This means that the Service Changed is coming from the iOS device. So sending the Service Changed from the nRF8001's GATT Server serves no purpose as the ANCS Service is the iOS device. You are using the GATT client on the nRF8001 to access the GATT Server on the iOS device. The nRF8001 GATT client automatically handles the Service Changed Indication coming from the iOS device. In summary: Sending Service Changed from your nRF8001 device for the ANCS use case is incorrect and should not be done.

    I am aware that this does not fix your issue, so you may try setting the GATT Solicited Services in the nRFgo studio setting for your nRF8001 project or try the latest ANCS project for the nRF8001 in our github repo and see if you still have issues.

Reply
  • The Service Changed Characteristic is a property of the GATT Service. In ANCS the GATT Server on the iOS device is used. This means that the Service Changed is coming from the iOS device. So sending the Service Changed from the nRF8001's GATT Server serves no purpose as the ANCS Service is the iOS device. You are using the GATT client on the nRF8001 to access the GATT Server on the iOS device. The nRF8001 GATT client automatically handles the Service Changed Indication coming from the iOS device. In summary: Sending Service Changed from your nRF8001 device for the ANCS use case is incorrect and should not be done.

    I am aware that this does not fix your issue, so you may try setting the GATT Solicited Services in the nRFgo studio setting for your nRF8001 project or try the latest ANCS project for the nRF8001 in our github repo and see if you still have issues.

Children
No Data
Related