Device description module

The device description module defines custom GATT Service, which 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 any event nor subscribe for any event.

Configuration

The module requires the basic Bluetooth configuration, as described in the Bluetooth in nRF Desktop documentation. Make sure that both CONFIG_DESKTOP_ROLE_HID_PERIPHERAL and CONFIG_DESKTOP_BT_PERIPHERAL 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 is able to 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.