I'm trying to realize the behavior of "BLE peripheral" that implements 20 "characteristics". While I was in the process of implementation, when I added 18 pieces, the return value of "sd_ble_gatts_characteristic_add ()" got an error.
When I investigated the cause of the error myself, I thought it was as follows. However, no confirmation was obtained. Would you please confirm that the recognition is correct?
-The RAM size that can be used to add "characteristic" can be changed by the definition of "NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE" described in "sdk_config.h". If you try to add a "characteristic" that exceeds the defined size, the return value of "sd_ble_gatts_characteristic_add ()" results in an error.
-Changing the value of "NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE" changes the amount of RAM used for "SoftDevice".
-The RAM usable area of "SoftDevice" is from "0x2000 0000" to "Appication RAM start". If the amount of RAM used by "SoftDevice" exceeds this range, an error occurs.
By changing “NRF_SDH_BLE_GATTS_ATTR_TAB_SIZE” to fit within the range, it is possible to change the RAM size that can be used to add the characteristic without affecting other operations.