Human Interface Devices (HID)¶
Common USB HID part that can be used outside of USB support, defined in header file include/zephyr/usb/class/hid.h.
HID types reference¶
- group usb_hid_definitions
hid.h API
USB HID types and values
-
USB_HID_VERSION¶
HID Specification release v1.11
-
USB_DESC_HID¶
USB HID Class HID descriptor type
-
USB_DESC_HID_REPORT¶
USB HID Class Report descriptor type
-
USB_DESC_HID_PHYSICAL¶
USB HID Class physical descriptor type
-
USB_HID_GET_REPORT¶
USB HID Class GetReport bRequest value
-
USB_HID_GET_IDLE¶
USB HID Class GetIdle bRequest value
-
USB_HID_GET_PROTOCOL¶
USB HID Class GetProtocol bRequest value
-
USB_HID_SET_REPORT¶
USB HID Class SetReport bRequest value
-
USB_HID_SET_IDLE¶
USB HID Class SetIdle bRequest value
-
USB_HID_SET_PROTOCOL¶
USB HID Class SetProtocol bRequest value
-
HID_BOOT_IFACE_CODE_NONE¶
USB HID Boot Interface Protocol (bInterfaceProtocol) Code None
-
HID_BOOT_IFACE_CODE_KEYBOARD¶
USB HID Boot Interface Protocol (bInterfaceProtocol) Code Keyboard
-
HID_BOOT_IFACE_CODE_MOUSE¶
USB HID Boot Interface Protocol (bInterfaceProtocol) Code Mouse
-
HID_PROTOCOL_BOOT¶
USB HID Class Boot protocol code
-
HID_PROTOCOL_REPORT¶
USB HID Class Report protocol code
-
HID_ITEM_TYPE_MAIN¶
HID Main item type
-
HID_ITEM_TYPE_GLOBAL¶
HID Global item type
-
HID_ITEM_TYPE_LOCAL¶
HID Local item type
-
HID_ITEM_TAG_INPUT¶
HID Input item tag
-
HID_ITEM_TAG_OUTPUT¶
HID Output item tag
-
HID_ITEM_TAG_COLLECTION¶
HID Collection item tag
-
HID_ITEM_TAG_FEATURE¶
HID Feature item tag
-
HID_ITEM_TAG_COLLECTION_END¶
HID End Collection item tag
-
HID_ITEM_TAG_USAGE_PAGE¶
HID Usage Page item tag
-
HID_ITEM_TAG_LOGICAL_MIN¶
HID Logical Minimum item tag
-
HID_ITEM_TAG_LOGICAL_MAX¶
HID Logical Maximum item tag
-
HID_ITEM_TAG_PHYSICAL_MIN¶
HID Physical Minimum item tag
-
HID_ITEM_TAG_PHYSICAL_MAX¶
HID Physical Maximum item tag
-
HID_ITEM_TAG_UNIT_EXPONENT¶
HID Unit Exponent item tag
-
HID_ITEM_TAG_UNIT¶
HID Unit item tag
-
HID_ITEM_TAG_REPORT_SIZE¶
HID Report Size item tag
-
HID_ITEM_TAG_REPORT_ID¶
HID Report ID item tag
-
HID_ITEM_TAG_REPORT_COUNT¶
HID Report count item tag
-
HID_ITEM_TAG_USAGE¶
HID Usage item tag
-
HID_ITEM_TAG_USAGE_MIN¶
HID Usage Minimum item tag
-
HID_ITEM_TAG_USAGE_MAX¶
HID Usage Maximum item tag
-
HID_COLLECTION_PHYSICAL¶
Physical collection type
-
HID_COLLECTION_APPLICATION¶
Application collection type
-
HID_COLLECTION_LOGICAL¶
Logical collection type
-
HID_COLLECTION_REPORT¶
Report collection type
-
HID_COLLECTION_NAMED_ARRAY¶
Named Array collection type
-
HID_COLLECTION_USAGE_SWITCH¶
Usage Switch collection type
-
HID_COLLECTION_MODIFIER¶
Modifier collection type
-
HID_USAGE_GEN_DESKTOP¶
HID Generic Desktop Controls Usage page
-
HID_USAGE_GEN_KEYBOARD¶
HID Keyboard Usage page
-
HID_USAGE_GEN_LEDS¶
HID LEDs Usage page
-
HID_USAGE_GEN_BUTTON¶
HID Button Usage page
-
HID_USAGE_GEN_DESKTOP_UNDEFINED¶
HID Generic Desktop Undefined Usage ID
-
HID_USAGE_GEN_DESKTOP_POINTER¶
HID Generic Desktop Pointer Usage ID
-
HID_USAGE_GEN_DESKTOP_MOUSE¶
HID Generic Desktop Mouse Usage ID
-
HID_USAGE_GEN_DESKTOP_JOYSTICK¶
HID Generic Desktop Joystick Usage ID
-
HID_USAGE_GEN_DESKTOP_GAMEPAD¶
HID Generic Desktop Gamepad Usage ID
-
HID_USAGE_GEN_DESKTOP_KEYBOARD¶
HID Generic Desktop Keyboard Usage ID
-
HID_USAGE_GEN_DESKTOP_KEYPAD¶
HID Generic Desktop Keypad Usage ID
-
HID_USAGE_GEN_DESKTOP_X¶
HID Generic Desktop X Usage ID
-
HID_USAGE_GEN_DESKTOP_Y¶
HID Generic Desktop Y Usage ID
-
HID_USAGE_GEN_DESKTOP_WHEEL¶
HID Generic Desktop Wheel Usage ID
-
USB_HID_VERSION¶
HID items reference¶
- group usb_hid_items
Defines
-
HID_ITEM(bTag, bType, bSize)¶
Define HID short item.
- Parameters:
bTag – Item tag
bType – Item type
bSize – Item data size
- Returns:
HID Input item
-
HID_INPUT(a)¶
Define HID Input item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Input item data
- Returns:
HID Input item
-
HID_OUTPUT(a)¶
Define HID Output item with the data length of one byte.
For usage examples, see HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Output item data
- Returns:
HID Output item
-
HID_FEATURE(a)¶
Define HID Feature item with the data length of one byte.
- Parameters:
a – Feature item data
- Returns:
HID Feature item
-
HID_COLLECTION(a)¶
Define HID Collection item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Collection item data
- Returns:
HID Collection item
-
HID_END_COLLECTION¶
Define HID End Collection (non-data) item.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Returns:
HID End Collection item
-
HID_USAGE_PAGE(page)¶
Define HID Usage Page item.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
page – Usage Page
- Returns:
HID Usage Page item
-
HID_LOGICAL_MIN8(a)¶
Define HID Logical Minimum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Minimum value in logical units
- Returns:
HID Logical Minimum item
-
HID_LOGICAL_MAX8(a)¶
Define HID Logical Maximum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Maximum value in logical units
- Returns:
HID Logical Maximum item
-
HID_LOGICAL_MIN16(a, b)¶
Define HID Logical Minimum item with the data length of two bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value higher byte
- Returns:
HID Logical Minimum item
-
HID_LOGICAL_MAX16(a, b)¶
Define HID Logical Maximum item with the data length of two bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value higher byte
- Returns:
HID Logical Maximum item
-
HID_LOGICAL_MIN32(a, b, c, d)¶
Define HID Logical Minimum item with the data length of four bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value low middle byte
c – Minimum value high middle byte
d – Minimum value higher byte
- Returns:
HID Logical Minimum item
-
HID_LOGICAL_MAX32(a, b, c, d)¶
Define HID Logical Maximum item with the data length of four bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value low middle byte
c – Minimum value high middle byte
d – Minimum value higher byte
- Returns:
HID Logical Maximum item
-
HID_REPORT_SIZE(size)¶
Define HID Report Size item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
size – Report field size in bits
- Returns:
HID Report Size item
-
HID_REPORT_ID(id)¶
Define HID Report ID item with the data length of one byte.
- Parameters:
id – Report ID
- Returns:
HID Report ID item
-
HID_REPORT_COUNT(count)¶
Define HID Report Count item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
count – Number of data fields included in the report
- Returns:
HID Report Count item
-
HID_USAGE(idx)¶
Define HID Usage Index item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
idx – Number of data fields included in the report
- Returns:
HID Usage Index item
-
HID_USAGE_MIN8(a)¶
Define HID Usage Minimum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Starting Usage
- Returns:
HID Usage Minimum item
-
HID_USAGE_MAX8(a)¶
Define HID Usage Maximum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Ending Usage
- Returns:
HID Usage Maximum item
-
HID_USAGE_MIN16(a, b)¶
Define HID Usage Minimum item with the data length of two bytes.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Starting Usage lower byte
b – Starting Usage higher byte
- Returns:
HID Usage Minimum item
-
HID_USAGE_MAX16(a, b)¶
Define HID Usage Maximum item with the data length of two bytes.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Ending Usage lower byte
b – Ending Usage higher byte
- Returns:
HID Usage Maximum item
-
HID_ITEM(bTag, bType, bSize)¶
HID Mouse and Keyboard report descriptors¶
The pre-defined Mouse and Keyboard report descriptors can be used by a HID device implementation or simply as examples.
- group usb_hid_mk_report_desc
Defines
-
HID_MOUSE_REPORT_DESC(bcnt)¶
Simple HID mouse report descriptor for n button mouse.
- Parameters:
bcnt – Button count. Allowed values from 1 to 8.
-
HID_KEYBOARD_REPORT_DESC()¶
Simple HID keyboard report descriptor.
Enums
-
enum hid_kbd_code¶
HID keyboard button codes.
Values:
-
enumerator HID_KEY_A = 4¶
-
enumerator HID_KEY_B = 5¶
-
enumerator HID_KEY_C = 6¶
-
enumerator HID_KEY_D = 7¶
-
enumerator HID_KEY_E = 8¶
-
enumerator HID_KEY_F = 9¶
-
enumerator HID_KEY_G = 10¶
-
enumerator HID_KEY_H = 11¶
-
enumerator HID_KEY_I = 12¶
-
enumerator HID_KEY_J = 13¶
-
enumerator HID_KEY_K = 14¶
-
enumerator HID_KEY_L = 15¶
-
enumerator HID_KEY_M = 16¶
-
enumerator HID_KEY_N = 17¶
-
enumerator HID_KEY_O = 18¶
-
enumerator HID_KEY_P = 19¶
-
enumerator HID_KEY_Q = 20¶
-
enumerator HID_KEY_R = 21¶
-
enumerator HID_KEY_S = 22¶
-
enumerator HID_KEY_T = 23¶
-
enumerator HID_KEY_U = 24¶
-
enumerator HID_KEY_V = 25¶
-
enumerator HID_KEY_W = 26¶
-
enumerator HID_KEY_X = 27¶
-
enumerator HID_KEY_Y = 28¶
-
enumerator HID_KEY_Z = 29¶
-
enumerator HID_KEY_1 = 30¶
-
enumerator HID_KEY_2 = 31¶
-
enumerator HID_KEY_3 = 32¶
-
enumerator HID_KEY_4 = 33¶
-
enumerator HID_KEY_5 = 34¶
-
enumerator HID_KEY_6 = 35¶
-
enumerator HID_KEY_7 = 36¶
-
enumerator HID_KEY_8 = 37¶
-
enumerator HID_KEY_9 = 38¶
-
enumerator HID_KEY_0 = 39¶
-
enumerator HID_KEY_ENTER = 40¶
-
enumerator HID_KEY_ESC = 41¶
-
enumerator HID_KEY_BACKSPACE = 42¶
-
enumerator HID_KEY_TAB = 43¶
-
enumerator HID_KEY_SPACE = 44¶
-
enumerator HID_KEY_MINUS = 45¶
-
enumerator HID_KEY_EQUAL = 46¶
-
enumerator HID_KEY_LEFTBRACE = 47¶
-
enumerator HID_KEY_RIGHTBRACE = 48¶
-
enumerator HID_KEY_BACKSLASH = 49¶
-
enumerator HID_KEY_HASH = 50¶
-
enumerator HID_KEY_SEMICOLON = 51¶
-
enumerator HID_KEY_APOSTROPHE = 52¶
-
enumerator HID_KEY_GRAVE = 53¶
-
enumerator HID_KEY_COMMA = 54¶
-
enumerator HID_KEY_DOT = 55¶
-
enumerator HID_KEY_SLASH = 56¶
-
enumerator HID_KEY_CAPSLOCK = 57¶
-
enumerator HID_KEY_F1 = 58¶
-
enumerator HID_KEY_F2 = 59¶
-
enumerator HID_KEY_F3 = 60¶
-
enumerator HID_KEY_F4 = 61¶
-
enumerator HID_KEY_F5 = 62¶
-
enumerator HID_KEY_F6 = 63¶
-
enumerator HID_KEY_F7 = 64¶
-
enumerator HID_KEY_F8 = 65¶
-
enumerator HID_KEY_F9 = 66¶
-
enumerator HID_KEY_F10 = 67¶
-
enumerator HID_KEY_F11 = 68¶
-
enumerator HID_KEY_F12 = 69¶
-
enumerator HID_KEY_SYSRQ = 70¶
-
enumerator HID_KEY_SCROLLLOCK = 71¶
-
enumerator HID_KEY_PAUSE = 72¶
-
enumerator HID_KEY_INSERT = 73¶
-
enumerator HID_KEY_HOME = 74¶
-
enumerator HID_KEY_PAGEUP = 75¶
-
enumerator HID_KEY_DELETE = 76¶
-
enumerator HID_KEY_END = 77¶
-
enumerator HID_KEY_PAGEDOWN = 78¶
-
enumerator HID_KEY_RIGHT = 79¶
-
enumerator HID_KEY_LEFT = 80¶
-
enumerator HID_KEY_DOWN = 81¶
-
enumerator HID_KEY_UP = 82¶
-
enumerator HID_KEY_NUMLOCK = 83¶
-
enumerator HID_KEY_KPSLASH = 84¶
-
enumerator HID_KEY_KPASTERISK = 85¶
-
enumerator HID_KEY_KPMINUS = 86¶
-
enumerator HID_KEY_KPPLUS = 87¶
-
enumerator HID_KEY_KPENTER = 88¶
-
enumerator HID_KEY_KP_1 = 89¶
-
enumerator HID_KEY_KP_2 = 90¶
-
enumerator HID_KEY_KP_3 = 91¶
-
enumerator HID_KEY_KP_4 = 92¶
-
enumerator HID_KEY_KP_5 = 93¶
-
enumerator HID_KEY_KP_6 = 94¶
-
enumerator HID_KEY_KP_7 = 95¶
-
enumerator HID_KEY_KP_8 = 96¶
-
enumerator HID_KEY_KP_9 = 97¶
-
enumerator HID_KEY_KP_0 = 98¶
-
enumerator HID_KEY_A = 4¶
-
enum hid_kbd_modifier¶
HID keyboard modifiers.
Values:
-
enumerator HID_KBD_MODIFIER_NONE = 0x00¶
-
enumerator HID_KBD_MODIFIER_LEFT_CTRL = 0x01¶
-
enumerator HID_KBD_MODIFIER_LEFT_SHIFT = 0x02¶
-
enumerator HID_KBD_MODIFIER_LEFT_ALT = 0x04¶
-
enumerator HID_KBD_MODIFIER_LEFT_UI = 0x08¶
-
enumerator HID_KBD_MODIFIER_RIGHT_CTRL = 0x10¶
-
enumerator HID_KBD_MODIFIER_RIGHT_SHIFT = 0x20¶
-
enumerator HID_KBD_MODIFIER_RIGHT_ALT = 0x40¶
-
enumerator HID_KBD_MODIFIER_RIGHT_UI = 0x80¶
-
enumerator HID_KBD_MODIFIER_NONE = 0x00¶
-
HID_MOUSE_REPORT_DESC(bcnt)¶