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

What are the GATT database/profile Discovery's Limits?

In [sdk10_folder]\components\ble\ble_db_discovery.h, BLE_DB_DISCOVERY_MAX_SRV is given the value 2.

In [sdk10_folder]\components\ble\common\ble_gatt_db.h, BLE_GATT_DB_MAX_CHARS is given the value 4.

Are these limitation of the SoftDevice itself? If not, what is the SoftDevice's limit at storing such information?

Also, is there any other particular reason why these limits are set at such values? I am working on a thorough service discovery feature in my current project, so I would like to push the database's storage ability to the absolute limit.

Parents Reply Children
  • Yes. I have read over the code for ble_db_discovery module and learned that I need a custom module to make a generic discovery. I actually just finished working on making a modified version of the ble_db_discovery module for that purpose.

    On other note, is there plan to introduce a module for generic discovery in future SDK version? Given the design of the ble_db_discovery module and the fact that discovery event only return 16-bit UUID instead of full 128-bit UUID, it feels like the SDK is intended more for application with specific GATT Profiles rather than any generic one.

  • There are no plans to create a generic discovery module, at least not as far as I know. The current version seems to cover most use cases, except the generic discovery. Note that you can discover 128 bit UUID's using the sd_ble_gattc_attr_info_discover function (introduced in S130/S132 v2).

Related