zephyr/samples/subsys/usb/hid-keyboard
Johann Fischer 79a80730b2 usb: device_next: allow to use label as interface string descriptor
The intention was to use the "interface-name" string property in the
interface string descriptor, but using the label property is acceptable
again. Therefore, allow the use of the DT label property string in the
interface string descriptor.

Follow exactly the same approach as in the CDC ACM implementation
introduced in the commit b0791400f6
("usb: device_next: cdc_acm: allow setting the interface description").

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2025-06-11 08:18:30 +02:00
..
src
app.overlay usb: device_next: allow to use label as interface string descriptor 2025-06-11 08:18:30 +02:00
CMakeLists.txt
Kconfig
large_in_report.overlay usb: device_next: allow to use label as interface string descriptor 2025-06-11 08:18:30 +02:00
large_out_report.overlay
out_report.overlay
prj.conf
README.rst
sample.yaml

.. zephyr:code-sample:: usb-hid-keyboard
   :name: USB HID keyboard
   :relevant-api: usbd_api usbd_hid_device input_interface

   Implement a basic HID keyboard device.

Overview
********

This sample application demonstrates the HID keyboard implementation using the
new experimental USB device stack.

Requirements
************

This project requires an experimental USB device driver (UDC API) and uses the
:ref:`input` API. There must be a :dtcompatible:`gpio-keys` group of buttons
or keys defined at the board level that can generate input events.
At least one key is required and up to four can be used. The first three keys
are used for Num Lock, Caps Lock and Scroll Lock. The fourth key is used to
report HID keys 1, 2, 3 and the right Alt modifier at once.

The example can use up to three LEDs, configured via the devicetree alias such
as ``led0``, to indicate the state of the keyboard LEDs.

Building and Running
********************

This sample can be built for multiple boards, in this example we will build it
for the nRF52840DK board:

.. zephyr-app-commands::
   :zephyr-app: samples/subsys/usb/hid-keyboard
   :board: nrf52840dk/nrf52840
   :goals: build flash
   :compact: