The peripheral is connected to a servo and when I write to a particular characteristic via a mobile device the servo moves as it should.
Okay. What is the mobile app you are using?
Can you also check once with CySmart for Android and see whether the peripheral is working as expected? If the CySmart app works fine, then there will not be any issue with PSoC peripheral device.
When I do the same thing from my nRF52 (Adafruit Feather sense), the characteristic is updated (confirmed with a read after the write) but the servo doesn't move until I disconnect the central. So far my application is having to disconnect and re-connect after every write which is causing problems down stream.
Please check whether the nRF application firmware is well written. Please compare the code with nRF central and Client code examples.
Please check the air logs (using sniffer) when you are using the mobile app and nRF central device and see if there is any difference.
Thank you for getting back to me Ganesh.
I have used multiple BLE apps (nRF connect, LighBlue, BLE tools, BLE scanner, BLE Hero.....) I have not used CySmart however I doubt this would be any different. I have no doubt that the peripheral is working as it should.
I have ordered a sniffer but it has not arrived yet but this will be my next action. In the mean time can you think of any reason why a write with resp would only take effect after a disconnection? It is strange that the characteristic is updated but action not taken. It feels like the connection during the write is never completed? Is this possible?