diff --git a/docs/reference/configuration/BLE.md b/docs/reference/configuration/BLE.md
new file mode 100644
index 0000000000..759f67c7f2
--- /dev/null
+++ b/docs/reference/configuration/BLE.md
@@ -0,0 +1,127 @@
+
BLE
+
+This page describes build-time configurable parameters for BLE. A resource constrained device can limit its functionality to decrease the memory and flash use of the BLE module.
+
+To understand what each feature provides, please refer to the API docs and the Bluetooth specification.
+
+#### Build time configuration of the BLE feature
+
+To minimize the size of the BLE stack, BLE defines a set of build options.
+
+The configuration is contained in the `mbed_lib.json` configuration file located in `mbed-os/features/FEATURE_BLE/`. By default, all the features are enabled.
+
+Turning off individual features removes the code and any memory allocations required by that feature. Some features depend on one another - please see the comments in the configuration file for details. These dependencies are enforced during compile time.
+
+Trying to use a disabled feature results in a compile time error or an error reporting the feature as unimplemented at run time.
+
+#### Changing the configuration
+
+An excerpt from the configuration file:
+
+```
+{
+ "name": "ble",
+ "config": {
+ "ble-role-observer": {
+ "help": "Include observer BLE role support, allows listening for and processing advertising packets.",
+ "value": true,
+ "macro_name": "BLE_ROLE_OBSERVER"
+ },
+ ...
+```
+
+By changing `"value": true,` to `false`, you can disable each feature.
+
+##### Configurable features
+
+These are feature that you can disable:
+
+```
+Configuration parameters
+------------------------
+
+Name: ble.ble-role-observer
+ Description: Include observer BLE role support (scanning for and processing advertising packets).
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_ROLE_OBSERVER
+
+Name: ble.ble-role-broadcaster
+ Description: Include broadcaster BLE role support (sending advertising packets).
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_ROLE_BROADCASTER
+
+Name: ble.ble-role-central
+ Description: Include central BLE role support (initiates connections), depends on observer role.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_ROLE_CENTRAL
+
+Name: ble.ble-role-peripheral
+ Description: Include peripheral BLE role support (accepts connections), depends on broadcaster role.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_ROLE_PERIPHERAL
+
+Name: ble.ble-feature-gatt-client
+ Description: Include Gatt Client BLE role support (requests remote operations on attributes), depends on peripheral and central role.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_GATT_CLIENT
+
+Name: ble.ble-feature-gatt-server
+ Description: Include Gatt Server BLE role support (executes operations on stored attributes), depends on peripheral or central role.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_GATT_SERVER
+
+Name: ble.ble-feature-security
+ Description: Include security support (key management), depends on peripheral or central role.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_SECURITY
+
+Name: ble.ble-feature-secure-connections
+ Description: Include secure connections support, depends on the security feature.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_SECURE_CONNECTIONS
+
+Name: ble.ble-feature-signing
+ Description: Include signing support (signed attribute writes), depends on the security feature.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_SIGNING
+
+Name: ble.ble-feature-whitelist
+ Description: Include whitelist support (peer filtering), depends on the security feature.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_WHITELIST
+
+Name: ble.ble-feature-privacy
+ Description: Include privacy support(random resolvable addresses), depends on the security feature.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_PRIVACY
+
+Name: ble.ble-feature-phy-management
+ Description: Additional PHY support (2M and Coded)
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_PHY_MANAGEMENT
+
+Name: ble.ble-feature-extended-advertising
+ Description: Include extended advertising support(advertising sets, secondary channels), depends on the phy management feature.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_EXTENDED_ADVERTISING
+
+Name: ble.ble-feature-periodic-advertising
+ Description: Include periodic advertising support, depends on the extended advertising feature.
+ Defined by: library:ble
+ Value: true
+ Macro name: BLE_FEATURE_PERIODIC_ADVERTISING
+
+```