I am getting different behavior for 128 bit & 16 bit UUID for Custome service, characteristic, descriptor.
if I use 16-bit uuid to Custome service, characteristic, descriptor, I can read/write data from CySmart Android app.
But if I use 128-bit uuid to Custome service, characteristic, descriptor, I can not read/write data from CySmart Android app & firmware gets hanged.
As per my knowledge change in UUID formate should not affect at all.
Is there any kind of specific reason behind this behavior?
By mistake asked the wrong behavior,
Firmware could not work with 16-bit UUID and gets hanged.
Works fine with 128-bit UUID .
16 bit UUIDs are Bluetooth standard ID declarations, and as such are meant for certified/standardized services/profiles. Cypress tries to help with this by assigning custom profiles/services to 128-bit UUIDs automatically. If you are trying to use a 16-bit UUID, chances are that the phone is recognizing the 16-bit UUID for the service/profile that it is designated as (say medical location or something like that), rather than allowing you to use it as a "custom" service.
Unless you follow the specifications of the 16-bit UUIDs that you use according to this:Service Discovery | Bluetooth Technology Website
then most likely you will run into compatibility issues when trying to use your profile with standard Bluetooth devices/phones.
I would suggest sticking with the UUID 128-bit for your custom service unless you are specifically trying to use one of the standard/declared services on the Bluetooth website.
tl;dr; Use the 128-bit UUID