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 nRF Desktop: Bluetooth 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.