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 Reply Children
  • 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

  • Yes, as far as I know this is only an Android issue, i.e. you should be able to discover all the characteristics as a central on a nRF5x chip. I will report this to the Mobile apps group.

  • Thanks for the report. I will check why the nRF Connect hangs after I'm back from vacations. You should be able to group them in more services, let's say 3 services 20 char each.

Related