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.