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

Maximum number of characteristics

Hi I am using S110 v6.0.0 I have written an app that has a single service and I then register the same characteristics until it fails. The properties is 0xA (read/write). When I use _VLOC_STACK it runs out of memory and for value len=10 I can register 24 characteristics and for value len = 20 I can register 20 (for value len = 1, I can register 29)

I then modified my app so that it uses _VLOC_USER and then regardless of value len I can register 30 for all.

We have a customer who is asking to be able to register at least 33 characteristics spread over 8 services. My guess is that registering the service attribute is going to reduce that number down even more.

Is there anything you can suggest?

Look forward to hearing from you

Parents Reply Children
  • Hi Thank you for getting back. You say "The rest of the characteristics can then be added with VLOC_USER." Not true because even for VLOC_USER (for everything) it needs to use the 'stack' memory for the uuid and the handles. That is why when I use VLOC_USER for everything I still run out of memory.

    A customer has asked for the 33 characteristics. They are king :-) we have to make it happen if in our powers. We pride ourselves in customer service.

    Another curious behaviour, which is very annoying as I cannot fathom the reason yet ...

    I have a test application where I register a character with property = 0x2A (read/write/indicatable) with VLOC_STACK and it works.

    I changed the application so that it has VLOC_USER ( I stress no other change) and now the function sd_ble_gatts_characteristic_add() is returning with an nrf error of 7 (INVALID PARAMETER)

    Why does just changing the location memory make the parameters fail?

    I can't find any documentation to tell me WHICH parameter is inva

Related