-
• #2
If you've defined them in an app, the services/characteristics will only take effect when you run that app, and if you're currently connected to the watch they won't apply until you disconnect, so that could be it?
But also, modern phones tend to actually cache the characteristics to allow them to connect faster, so it might be that it's your phone that's giving you the wrong info (especially if it's an iPhone). Try turning Bluetooth off and on on the phone and see if that helps?
-
• #3
I ran the app and turned bluetooth off and on the phone. It's weird because my other bangle has the same app and I'm able to see the services/characteristics just fine, but with this one it never shows. I am able to change what services are being advertised, but when I actually connect my custom services are not there.
The only difference I know of between the two watches is that I did the firmware update on the one that doesn't work. I downgraded it back to the old firmware but that didn't fix anything.
-
• #4
The only difference I know of between the two watches
What about pairing in OS settings - maybe you paired one Bangle with the phone and did not pair the other - as OS pairing is actually not needed to use it? I can imagine services being cached by OS for device that is paired.
I am able to change what services are being advertised
Service IDs in advertising packet are not related to services provided over GATT after you connect. You typically advertise service GUID for better filtering of devices before you connect but as said it is actually unrelated.
Advertising is done via
NRF.setAdvertising(data, options)
- there you can advertise any service ID you wish (or none, it is optional), GATT implementation of services is set viaNRF.setServices(data, options)
and that one matters after you connect.
I wrote an app that created a custom service and two custom characteristics. It used to work, and I could see the service and characteristics when connected on NRF connect. Now, no matter what I try, the services will not show up. The exact same code works on my other bangle. I'm not sure what happened since then, but I did install a firmware update between then and now. My previous version was 2v19, and was updated to 2v23. My bangle that works is still 2v19. I tried to downgrade back to 2v19, but the same issue exists. Any idea on what could cause custom services and characteristics to not be updated?