Device description module
The device description module defines the custom GATT Service that contains:
Information about whether the peripheral supports the Low Latency Packet Mode (LLPM).
Hardware ID (HW ID) of the peripheral.
To support the LLPM, the peripheral must use the SoftDevice Link Layer.
This means that you must enable both the CONFIG_BT_LL_SOFTDEVICE and the CONFIG_CAF_BLE_USE_LLPM Kconfig options.
The Service is mandatory for all nRF Desktop peripherals that connect to the nRF Desktop centrals.
Module events
The dev_descr module does not submit nor subscribe to any events.
Configuration
The module requires the basic Bluetooth® configuration, as described in the nRF Desktop: Bluetooth documentation.
Make sure that both CONFIG_DESKTOP_ROLE_HID_PERIPHERAL and CONFIG_DESKTOP_BT_PERIPHERAL Kconfig options are enabled.
The device description application module is enabled by the CONFIG_DESKTOP_DEV_DESCR_ENABLE option, which is implied by CONFIG_DESKTOP_BT_PERIPHERAL together with other features used by a Bluetooth LE HID peripheral device.
The module selects the CONFIG_DESKTOP_HWID option to make sure that the nRF Desktop Hardware ID utility is enabled.
The utility uses Zephyr’s Hardware Information to obtain the hardware ID and selects the CONFIG_HWINFO Kconfig option to automatically enable the required driver.
The dev_descr.h file contains the UUIDs used by the custom GATT Service.
The file is located in the configuration/common directory.
The UUIDs must be the same for all devices to ensure that the central can read the provided information.
Implementation details
The module uses BT_GATT_SERVICE_DEFINE to define the custom GATT Service.
More detailed information regarding GATT is available in Zephyr’s Generic Attribute Profile (GATT) documentation.