fix(nimble): Add support to minimize ram consumption

This commit is contained in:
Shreeyash
2025-06-03 16:06:57 +05:30
parent 28980b62c9
commit 7d86471ea9
25 changed files with 1159 additions and 0 deletions
@@ -131,6 +131,35 @@ GAP procedure initiated: terminate connection; conn_handle=0 hci_reason=19
disconnect; reason=534
```
The following configuration flags can be adjusted to significantly reduce RAM usage in your ESP-IDF project while retaining basic BLE functionality.
----------------------------------------------------------------------------------------------
| Config Option || Old → New Value || RAM Saved (Bytes) |
|--------------------------------------------------||------------------||--------------------|
| CONFIG_BT_NIMBLE_SM_SC || y → n || 2040 |
| CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION || y → n || 32 |
| CONFIG_BT_NIMBLE_GATT_MAX_PROCS || 4 → 2 || 112 |
| CONFIG_BT_NIMBLE_MAX_CONNECTIONS || 3 → 1 || 480 |
| CONFIG_BT_NIMBLE_MAX_BONDS || 3 → 1 || 448 |
| CONFIG_BT_NIMBLE_MAX_CCCDS || 8 → 1 || 112 |
| CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT || y → n || 256 |
| CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT || 30 → 15 || 240 |
| CONFIG_BT_NIMBLE_SECURITY_ENABLE || y → n || 2072 |
| CONFIG_SPI_FLASH_ROM_IMPL || n → y || 9804 |
| CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP || y → n || 0 |
| CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP || y → n || 140 |
| CONFIG_SPI_FLASH_SUPPORT_GD_CHIP || y → n || 648 |
| CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP || y → n || 8 |
| CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP || y → n || 140 |
| CONFIG_SPI_FLASH_SUPPORT_TH_CHIP || y → n || 136 |
| CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE || y → n || 704 |
| CONFIG_VFS_SUPPORT_TERMIOS || y → n || 424 |
| CONFIG_VFS_SUPPORT_IO || y → n || 2008 |
| CONFIG_COMPILER_OPTIMIZATION_SIZE || n → y || 8408 |
| CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE || n → y || 5896 |
| CONFIG_ESP_COEX_SW_COEXIST_ENABLE || y → n || 896 |
| ESP_TASK_WDT_EN || y → n || 528 |
| CONFIG_LOG_DEFAULT_LEVEL_NONE || n → y || 2592 |
----------------------------------------------------------------------------------------------
## Troubleshooting
@@ -0,0 +1,47 @@
# Override some defaults so BT stack is enabled
# in this example
#
# BT config
#
CONFIG_BT_ENABLED=y
CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y
CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n
CONFIG_BTDM_CTRL_MODE_BTDM=n
CONFIG_BT_BLUEDROID_ENABLED=n
CONFIG_BT_NIMBLE_ENABLED=y
CONFIG_BT_NIMBLE_SM_SC=n
CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=n
CONFIG_BT_NIMBLE_GATT_MAX_PROCS=2
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BT_NIMBLE_MAX_BONDS=1
CONFIG_BT_NIMBLE_MAX_CCCDS=1
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=15
#Uncomment below, if security needs to be disabled
#CONFIG_BT_NIMBLE_SECURITY_ENABLE=n
CONFIG_SPI_FLASH_ROM_IMPL=y
CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=n
CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=n
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n
CONFIG_VFS_SUPPORT_TERMIOS=n
CONFIG_VFS_SUPPORT_IO=n
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y
CONFIG_ESP_COEX_SW_COEXIST_ENABLE=n
CONFIG_ESP_TASK_WDT_EN=n
#Uncomment below, if logging needs to be disabled
#CONFIG_LOG_DEFAULT_LEVEL_NONE=y
#CONFIG_LOG_DEFAULT_LEVEL=0