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

nRF Connect fails when using many characteristics

Hi,

when I use nRF Connect (or MCP before) to browse my BLE service, I get shown some garbage if I use many characteristics in my service.

When I use 45 characteristics, the last 8 characteristics are not displayed properly. Instead if Unknown Characteristic, I see Unknown Descriptor entries (2 descriptors for each missing characteristic: 1x UUID 2803 and 1x my configured UUID).

If I increase the amout on characteristics to 48 or 52, the discovery does not even finish anymore (last log message: [Callback] Services discovered with status: 0). After that, the App does not work properly anymore (e.g. you cannot start scanning in the corresponding tab). I have to shut down nRF Logger and re-start it.

If I use a different Android App like 'SmartDiscover' or 'BLE Scanner', at least the software does not hang but I can see the same behavior with the descriptiors mentioned above. Is this a Android issue? By the way, I'm using Android 4.4.2.

On the nRF side everything seems to be okay, I get NRF_SUCCESS in return for all the characteristics that I register...

Any ideas?

Parents
  • Yes, this is a known issue with Android.

    http://stackoverflow.com/questions/24531334/is-there-any-limit-on-characteristics-uuid-in-android-ble

    https://code.google.com/p/android/issues/detail?id=76639

    Apparently, if there are too many characteristics, service discovery will not be performed correctly.

    That said, are you sure that you need 48 characteristics in a service? Could you explain your use case?

    Best regards

    Bjørn

  • Hi Bjørn, thanks for the reply.

    Can you confirm that all characteristics can be read and written reliably when not using Discovery? (e.g. when I implement a Central o nRF5x, I can read by UUID and get the handle in return, which I can use for other function calls.)

    Pleas notice that the nRF Connect app also hangs if there are too many characteristics (50+). This is not the case with 'SmartDiscover' or 'BLE Scanner' and I expect this to be a bug in nRF Connect. Would be nice if you could fix that so that I can at least work with the correctly shown characteristics (and go back to scanning).

    Our customer decided that we want to have so many characteristics. We provide realtime data from several sensors and communication partners gathered by our module. As long as reading separate values by UUID works, there should not be any problem on our side. It's just a litte inconvenient that we cannot use nRC Connect for testing.

    As far as I understand, it should be possible to split the characteristics into different services. We imlpemented something similiar before, but for the current design, out customer decided to put everything into the same service.

    Kind regards, Michael

Reply
  • Hi Bjørn, thanks for the reply.

    Can you confirm that all characteristics can be read and written reliably when not using Discovery? (e.g. when I implement a Central o nRF5x, I can read by UUID and get the handle in return, which I can use for other function calls.)

    Pleas notice that the nRF Connect app also hangs if there are too many characteristics (50+). This is not the case with 'SmartDiscover' or 'BLE Scanner' and I expect this to be a bug in nRF Connect. Would be nice if you could fix that so that I can at least work with the correctly shown characteristics (and go back to scanning).

    Our customer decided that we want to have so many characteristics. We provide realtime data from several sensors and communication partners gathered by our module. As long as reading separate values by UUID works, there should not be any problem on our side. It's just a litte inconvenient that we cannot use nRC Connect for testing.

    As far as I understand, it should be possible to split the characteristics into different services. We imlpemented something similiar before, but for the current design, out customer decided to put everything into the same service.

    Kind regards, Michael

Children
No Data
Related