HID Usage Tables
FOR

Universal Serial Bus (USB)

Version

1.22

1996-2021 USB Implementers’ Forum—All rights reserved.

Contributors
Contributor

CompanyDavid Abzarian

Microsoft Corp.

Abdulkarim Ali

Aristocrat Technologies Australia

Shubhalakshmi Amin

Microsoft Corp.

Brian M. Bates

ELO Touchsystems

Gopu Bhaskar

Apple Inc.

Fred Bhesania

Microsoft Corp.

Calai Bhoopathi

SCM Micro

Anton ChengIntel Corp.

Robert Dezmelyk

LCS/Telegraphics

Andrew Dye

Microsoft Corp.

Karthik Elangovan

Microsoft Corp.

Dan Ellis

Displaylink

Dave Fleck

Wacom Technology Corp

Olivier Gay

LogitechYevgen Goryachok

Apple Inc.

Ke A HanIntel Corp.

Hemin HanIntel Corp.

Pranav Hippargi

Microsoft Corp.

Robert Hulvey

Broadcom Corp

Robert Ingman

Microsoft Corp.

Slim Jallouli
Bo Kang

ST Microelectronics
ST Microelectronics

Mark Lavelle

Logitech

Rob Lieb

Symbol Technologies Inc.

Kevin Lynch

Synaptics Inc

Steve McGowan

Intel Corp.

Rouella Mendonca

Microsoft Corp.

Sean O’Brien

Google LLC.

Mark A. Overby

NVIDIA Corp.

Juan J. Perez

Microsoft Corp.

Richard Petrie
Kenneth Ray

Nokia
Microsoft Corp.

Denny Rönngren

Tobii AB

Steve Schumacher

LCS/Telegraphics

Nathan C. Sherman

Microsoft Corp.

Alex Shows
Don Stern
Dmitry Torokhov

Dell
TV Interactive
Google LLC.

Reed Townsend

Microsoft Corp.
1

Jim Trethewey

Intel Corp.

Mike Van Flandern

Microsoft Corp.

Larry Weiss

Microsoft Corp.

Matthew I. Williams (Chair)

Microsoft Corp.

Michael Wright

Google LLC.

Roberto Yepez

Apple Inc.

Remy Zimmerman

Logitech2

Revision History
RevisionIssue Date

Comments

1.22

April 5, 2021

Incorporate HUT Review Requests 99, 100.

1.21

October 12, 2020

Incorporate HUT Review Request 98.

1.2

July 29, 2020

Incorporate HUT Review Request 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93,
94, 95, 96, 97.

1.13

May 29, 2020

Updating Intellectual Property Disclaimer.

1.12rc1

October 28, 2004

Incorporate HUT Review Request 20, 21, 22, 23, 24, 25, 27, and 29

1.11

June 27, 2001

Version 1.11 release

1.11rc1

August 7, 2000

1.1

April 8, 1999

Incorporate HUT Review Request 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15,16, 17, and18.
Version 1.1 release

1.1rc3February 16, 1999

Correct barcode Usage Page ID. Corrected page numbering.

1.1rc2January 21, 1999

Incorporate HID Review Request 51.

1.1rc1

October 13, 1998

Incorporate Keyboard Usage Table from the 1.0 HID Specification and HID Review
Requests 16, 34, 38, 40, 41, 42, 43, 45, 46, 48 and 49.

1.0

October 30, 1997

Version 1

3

Copyright
Copyright © 1996-2020, USB Implementers ForumAll rights reserved.
INTELLECTUAL PROPERTY DISCLAIMER
THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER INCLUDING ANYWARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ANY WARRANTYOTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE.
TO THE MAXIMUM EXTENT OF USB IMPLEMENTERS FORUM’S RIGHTS, USB IMPLEMENTERS FORUMHEREBY GRANTS A LICENSE UNDER COPYRIGHT TO REPRODUCE THIS SPECIFICATION FOR
INTERNAL USE ONLY (E.G., ONLY WITHIN THE COMPANY OR ORGANIZATION THAT PROPERLYDOWNLOADED OR OTHERWISE OBTAINED THE SPECIFICATION FROM USB IMPLEMENTERS FORUM,
OR FOR AN INDIVIDUAL, ONLY FOR USE BY THAT INDIVIDUAL). THIS SPECIFICATION MAY NOT BE
REPUBLISHED EXTERNALLY OR OTHERWISE TO THE PUBLIC.
IT IS CONTEMPLATED THAT MANY IMPLEMENTATIONS OF THIS SPECIFICATION (E.G., IN A PRODUCT)DO NOT REQUIRE A LICENSE TO USE THIS SPECIFICATION UNDER COPYRIGHT. FOR CLARITY,HOWEVER, TO THE MAXIMUM EXTENT OF USB IMPLEMENTERS FORUM’S RIGHTS, USB
IMPLEMENTERS FORUM HEREBY GRANTS A LICENSE UNDER COPYRIGHT TO USE THIS SPECIFICATIONAS REASONABLY NECESSARY TO IMPLEMENT THIS SPECIFICATION (E.G., IN A PRODUCT).
NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY PATENT OR
OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED OR INTENDED HEREBY.
USB IMPLEMENTERS FORUM AND THE AUTHORS OF THIS SPECIFICATION DISCLAIM ALL LIABILITY,INCLUDING LIABILITY FOR INFRINGEMENT OF PROPRIETARY RIGHTS, RELATING TO
IMPLEMENTATION OF INFORMATION IN THIS SPECIFICATION. AUTHORS OF THIS SPECIFICATION ALSO
DO NOT WARRANT OR REPRESENT THAT SUCH IMPLEMENTATION(S) WILL NOT INFRINGE SUCHRIGHTS.
All product names are trademarks, registered trademarks, or service marks of their respective owners.
Please send comments via electronic mail to hidcomments‘at’usb.org, us the @ sign for ‘at’.

4

Contents
1

Introduction

13

2

Management Overview

14

3

Usage Pages
15
3.1 HID Usage Table Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Handling Unknown Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Usages and Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Usage Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Usage Types (Controls) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1.1
Linear Control (LC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4.1.2
On/Off Control (OOC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1.3
Momentary Control (MC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1.4
One Shot Control (OSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1.5
Re-Trigger Control (RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.2 Usage Types (Data) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2.1
Selector (Sel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2.2
Static Value (SV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2.3
Static Flag (SF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2.4
Dynamic Flag (DF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.2.5
Dynamic Value (DV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.3 Usage Types (Collection) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.3.1
Named Array (NAry) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.3.2
Collection Application (CA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.3.3
Collection Logical (CL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.3.4
Collection Physical (CP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.3.5
Usage Switch (US) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.3.6
Usage Modifier (UM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.4 Alternate Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 System Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.1 Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.2 Mice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.3 Joysticks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.6 HID LANGIDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.6.1 Usage Data Descriptor (0x01) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6.2 Vendor Defined HID LANGID (0x3C - 0x3F) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4

Generic Desktop Page (0x01)
30
4.1 Application Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Axis Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Miscellaneous Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1 Resolution Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Vector Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 System Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5.1 Power Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.6 Buffered Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.7 Direction Pads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.8 Feature Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.9 Software Flow Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.10 System Display Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.11 Computer Sensor Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.12 Wireless Radio Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.13 Generic Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5

4.14
4.15

Spatial Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Dockable Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5Simulation Controls Page (0x02)
54
5.1 Sports Simulation Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2 Flight Simulation Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3 Automobile Simulation Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4 Tank Simulation Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5 Maritime Simulation Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6 Two-wheeled Simulation Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.7 Miscellaneous Simulation Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6

VR Controls Page (0x03)
65
6.1 VR Control Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.2 VR Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7Sport Controls Page (0x04)
68
7.1 Stick Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.2 Exercise Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

8Game Controls Page (0x05)
71
8.1 3D Game Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.2 Pinball Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.3 Gun Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.4 Gamepads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.4.1 Gamepad Button Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

9Generic Device Controls Page (0x06)
77
9.1 Background/Nonuser Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
9.2 Device Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
9.3 Versioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
9.4 Device Grip Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

10 Keyboard/Keypad Page (0x07)

82

11 LED Page (0x08)
90
11.1 Keyboard Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
11.2 Telephony Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
11.3 Consumer Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
11.4 Media Transport Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
11.5 Printer Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
11.6 General Device Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
11.7 Multicolor (RGB) LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
11.8 Game Player Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
12 Button Page (0x09)

102

13 Ordinal Page (0x0A)

103

14 Telephony Device Page (0x0B)
104
14.1 Telephony Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
14.2 Telephony Key Pad Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
14.3 Call Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
14.4 Speed Dial Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
14.5 Voice Mail Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
14.6 Locally Generated Tones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
14.7 Call History Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
14.8 Host Dual Mode Phone Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6

14.9 Ring Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
14.10 Call History Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
15 Consumer Page (0x0C)
117
15.1 Generic Consumer Control Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
15.2 Numeric Key Pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
15.3 General Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
15.4 Menu Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
15.5 Display Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
15.6 Selection Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
15.7 Transport Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
15.8 Search Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
15.9 Audio Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
15.9.1 Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
15.9.2 Balance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
15.9.3 Bass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
15.9.4 Treble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.9.5 Other . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
15.10 Speed Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
15.11 Home and Security Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
15.12 Speaker Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
15.12.1 Audio Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
15.13 PC Theatre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
15.14 Programmable Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
15.15 Application Launch Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
15.16 Generic GUI Application Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
15.17 Contact List Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
15.18 Descriptive Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
15.19 Input Assist Selectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
15.20 Game Recording Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
15.21 Access Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
15.22 Keyboard Backlight Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
15.23 Privacy Screen Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
16 Digitizers Page (0x0D)
161
16.1 Digitizer Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
16.2 Digitizer Transducer Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
16.3 Digitizer Report Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
16.3.1 Digitizer-Specific Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
16.3.2 Tilt Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
16.3.3 Azimuth-Altitude Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
16.4 Digitizer Switch Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
16.5 Touch Digitizer Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
16.6 Multi-touch Digitizer Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
16.7 Device Configuration Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
16.8 Character Gesture Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
16.9 Heat Map Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
17 Haptics Page (0x0E)
17517.1 Simple Haptic Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
17.2 Simple Haptic Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
17.2.1 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
17.2.2 Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
17.2.2.1 Required Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
17.2.2.2 Vendor Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
17.2.3 Duration of Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
17.2.3.1 Continuous Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
7

17.2.4

Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
17.2.4.1 Auto Mode Trigger Association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
17.2.4.2 Retriggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
17.2.4.3 Intensity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

18 Unicode Page (0x10)181

19 Eye and Head Trackers Page (0x12)
182
19.1 Eye/Head Trackers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
19.2 Capabilities Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
19.3 Tracking Distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
19.4 Maximum Screen Plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
19.5 Configuration Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
19.6 Status Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
19.7 Control Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
20 Auxiliary Display Page (0x14)
191
20.1 Alphanumeric Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
20.1.1 Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
20.1.2 Display Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
20.1.3 Scrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
20.1.4 Character Transfers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
20.1.5 Display Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
20.1.6 Cursor Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
20.1.7 Font Loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
20.1.8 Character Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
20.1.8.1 Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
20.1.8.2 7-Segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
20.1.8.3 14-Segment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
20.2 Bitmapped Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
20.2.1 Display Attributes Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
20.2.1.1 Display Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
20.2.1.2 Bit Depth Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
20.2.1.3 Monochrome and Indexed Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
20.2.1.4 RGB Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
20.2.1.5 Soft Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
20.2.2 Orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
20.2.3 Palette Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
20.2.4 Blit Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
20.2.5 Soft Button Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
20.3 Character Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
20.4 Requesting Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
21 Sensors Page (0x20)
211
21.1 Sensor Device Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
21.2 Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
21.3 Sensor State Event Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
21.4 Sensor Event Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
21.5 Generic Sensor Property Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
21.5.1 Property: Sensor Connection Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
21.5.2 Property: Reporting State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
21.5.3 Property: Power State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
21.5.4 Property: Sensor Batching Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
21.6 Biometric Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
21.7 Electrical Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
21.8 Environmental Sensor Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
21.9 Light Sensor Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
8

21.10 Location Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
21.10.1 Location Desired Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
21.10.2 Fix Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
21.10.3 Fix Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
21.10.4 GPS Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
21.10.5 GPS Selection Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
21.10.6 GPS Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
21.11 Mechanical Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
21.12 Motion Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
21.13 Orientation Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
21.13.1 Magnetometer Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
21.13.2 Simple Orientation Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
21.14 Scanner Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
21.15 Time Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
21.15.1 Day of Week . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
21.16 Custom Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
21.17 Custom Sensor Property Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
21.18 Generic Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
21.18.1 Generic GUID or PROPERTYKEY kind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
21.18.2 Generic Firmware VARTYPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
21.18.3 Generic Unit of Measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
21.18.4 Generic Unit Exponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
21.19 Personal Activity Sensor Field Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
21.19.1 Activity Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
21.19.2 Activity State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
21.19.3 Device Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
21.19.4 Step Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
21.20 Foldable Device Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
21.20.1 Hinge Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
21.20.2 Gesture Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
21.20.2.1 Chassis Flip Gesture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
21.20.2.2 Hinge Fold Gesture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
21.20.2.3 Gesture Sensor Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
21.20.2.4 Gesture State Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
21.20.2.5 Hinge Fold Contributing Panel Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
21.20.2.6 Hinge Fold Type Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
22 Medical Instrument Page (0x40)27722.1 Ultrasound Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
22.2 Acquisition Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
22.3 Signal Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
22.4 Acquisition and Display Mode Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
23 Braille Display Page (0x41)
282
23.1 Braille Display Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
23.2 Braille Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
23.3 Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
23.4 Braille Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
23.5 Screen Reader Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
23.6 Screen Reader Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
24 Lighting And Illumination Page (0x59)
290
24.1 Application Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
24.2 LampArray Attributes Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
24.2.1 LampArrayKind Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
24.3 Lamp Attributes Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
24.3.1 LampPurposes Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
9

24.4

Lamp Update Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
24.4.1 LampUpdate Flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
24.5 LampArray Control Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
24.6 LampArray Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
24.7 LampArray Attributes and Interrogation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
24.8 Lamp Attributes and Interrogation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
24.8.1 LampAttributesRequestReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
24.8.2 LampAttributesResponseReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
24.8.2.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
24.8.3 Lamp Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
24.9 Color Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
24.9.1 Color Attributes Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
24.10 LampArrayControlReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
24.10.1 AutonomousMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
24.11 Updating Lamp State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
24.11.1 LampMultiUpdateReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
24.11.2 LampRangeUpdateReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
25 Camera Control Page (0x90)
307
25.1 Camera Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
26 Gaming Device Page (0x92)

309

27 FIDO Alliance Page (0xF1D0)
310
27.1 Application Usages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Appendix A Indices for 8bit Preferred Colors

312

References

316

10

List of Tables
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10

Usage Page Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Types (Controls) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Types (Data) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Types (Collection) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
String Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LANGID Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GetDescriptor(String) Request . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
HID Sublanguage IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usage Data Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vendor Defined Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16
20
22
24
27
27
28
28
28
29

4.1

Generic Desktop Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5.1

Simulation Controls Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6.1

VR Controls Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

7.1

Sport Controls Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

8.1

Game Controls Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

9.1

Generic Device Controls Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

11.1

LED Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

12.1

Button Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

13.1

Ordinal Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

14.1

Telephony Device Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

15.1
15.3

Consumer Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Graphic Equalizer Data Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

16.1

Digitizer Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

17.1
17.3

Haptics Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Trigger Behavior by Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

19.1

Eye and Head Trackers Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

20.1 Auxiliary Display Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
20.4 ASCII Display Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
20.5 7-Segment Direct Mapping Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
20.6 14-Segment Direct Mapping Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
20.7 Display Data Extended Character Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
20.15 Example 7-Segment Font values for Hex digits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
20.16 14-Segment Font Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
20.28 Page Mapping Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
21.1

Sensors Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

22.1

Medical Instrument Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

23.1

Braille Display Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

11

25.1

Camera Control Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

27.1

Fast IDentity Online Alliance Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

121

Introduction

Usages are part of the HID Report descriptor and supply an application developer with information about what a control
is actually measuring or reporting. In addition, a Usage tag can be used to indicate the vendor’s suggested use for a
specific control or group of controls. While most of the items within a Report descriptor describe the format of the data
(e.g. three 8-bit fields) the Usage tags define what should be done with the data (e.g x, y, and z input). This featureallows a vendor to ensure that the user sees consistent function assignments to controls across applications. It is also the
key feature within HID Report descriptors that allows system or application software to know the meaning of data items,
or collections of data items, so the data items can be correctly interpreted or routed to the system or application softwarethat consumes them.

PurposeThis document defines constants that can be interpreted by an application to identify the purpose and meaning of a data
field in a HID report.
Usages are also used to define the meaning of groups of related data items. This is accomplished by the hierarchicalassignment of Usage information to collections. Usages identify the purpose of a collection and the items it contains. Each
Input, Output, Feature, and/or Collection data item within a Collection item can be assigned a purpose with its
own Usage item. Usages assigned to a collection apply to the items within the collection.
In some cases a Usage applied to a collection can redefine the meaning of the Usages it contains. An example of this is
the Usage Selected Indicator on the LED page.
Usages are also used to specify the meaning of each element within an Array data item.

Terms and Abbreviations
Term

Description

Application

A software program that consumes the data generated by the HID device Input reports, or that
controls the HID device through Feature or Output reports. Applications can be games or otherprograms used by end users or system software components.

Array field

The bit field created by an Input, Output, or Feature main item which is declared as an Array. An
array field contains the index of a Usage, not the Usage value.

Control

A control is used to operate or regulate a particular aspect of a device. In this document a control
refers broadly to the physical entity on the device that the Usage identifies.

Field

The Input, Output, and Feature main items create a bit field in a report. The Report Sizedetermines the field’s width and the associated Usage determines the field’s purpose. The offset of afield in a report is determined by the fields that are declared before it.

Pad

If a field is marked as a constant and there is no Usage associated with it, the field will be treated as
pad bits and ignored by host software.
Note: Fields created by Main items that do not have Usages attached to them might not be
accessible by applications. Whether such access is possible depends on the implementationof the HID device driver.

Usage

Defines the purpose or meaning of an item.

13

2Management Overview

This document provides lists of Usages and their descriptions that significantly extend the list of Usages provided in the
HID Specification. A HID Usage communicates the intended function or meaning of a particular control. Usages provide
a description of the data items in a HID device’s Input, Output, and Feature reports. The existence of a defined Usage
does not guarantee that system or application software will recognize or utilize the data item. Although Usages can bevery powerful, there is a potential for misuse. The detail provided in this document will help minimize the misuse or
misinterpretation of Usages when they are applied by a device developer.
Usages have been organized into pages of related controls. Each Usage has a Usage ID, Usage name and a detailed
description. The Usage names are mnemonics, not definitions. To avoid misleading interpretations based on the Usage
name, it is very important that a developer review a Usage’s description in detail to ensure that it properly identifies the
purpose of the control or device that the Usage is attached to.
In theory, a Usage can be attached to any type of HID control, variable, array, collection, and so forth. In reality, Usages
only make sense when they are attached to particular controls and used in certain ways. A relatively small set of Usage
types have been defined to help the application software developer better understand what to expect when a particular
Usage is found. Each Usage has a Usage type associated with it. The Usage type identifies the item types, flag settingsand bit fields organizations that are found with a particular Usage.
Usages can also identify functional devices as a whole, thus providing an easy method for an application to identify
devices that provide functions of interest. Such Usages are found attached to application collections that are wrappedaround all the items that describe a particular functional device, or a particular function in a complex device. Generally
an application will query the HID driver for all application collection Usages that it knows pertain to it. For example,
a gaming device driver might look for Joystick and Game Pad Usages, while a system mouse driver might look for
Mouse, Digitizer Tablet and Touch Screen Usages.
As a general rule, the Usages selected by a device developer should be specific enough to dissuade inappropriate use by
applications while remaining general enough to allow applications to take advantage of device features if they can. If
uncertain, favor the more general Usage to encourage broader application support for your device. An alternative is touse delimiters to define multiple Usages associated with a single control or a device.
Some Usage pages that are in the HID Specification are also found in this document. They are included here because
either additional text has been provided to clarify how the Usages are to be used, new Usages have been added to thepage, or both. No changes have been made to the Usage values assigned in the HID Specification.

14

3

Usage Pages

The following table lists the currently defined Usage Pages and the section in this document or the specification where
each page is described.
Page ID

Page Name

Section or Document00

Undefined

01

Generic Desktop Page (0x01)

402

Simulation Controls Page (0x02)

503

VR Controls Page (0x03)

604Sport Controls Page (0x04)

705Game Controls Page (0x05)

806

Generic Device Controls Page (0x06)

907

Keyboard/Keypad Page (0x07)

1008

LED Page (0x08)

1109

Button Page (0x09)

12

0A

Ordinal Page (0x0A)

13

0B

Telephony Device Page (0x0B)

140C

Consumer Page (0x0C)

15

0D

Digitizers Page (0x0D)

160E

Haptics Page (0x0E)

170F

PID Page

10

Unicode Page (0x10)

USB Physical Interface Device
definitions for force feedback
and related devices.
18

11-11
12

Reserved
Eye and Head Trackers Page (0x12)

19

13-13
14

Reserved
Auxiliary Display Page (0x14)

20

15-1F
20

Reserved
Sensors Page (0x20)

21

21-3F
40

Reserved
Medical Instrument Page (0x40)

2241

Braille Display Page (0x41)

23

42-58
59

Reserved
Lighting And Illumination Page (0x59)

24

5A-7F
80-83

Reserved
Monitor Pages

84-87

Power Pages

88-8B
8C

Reserved
Bar Code Scanner page

USB Device Class Definition for
Monitor Devices
USB Device Class Definition forPower Devices
USB Device Class Definition for
Point of Sale Devices

15

8D

Scale page

USB Device Class Definition for
Point of Sale Devices
USB Device Class Definition for
Point of Sale Devices
USB Device Class Definition for
Point of Sale Devices
25

8E

Magnetic Stripe Reading (MSR) Devices

8F

Reserved Point of Sale pages

90

Camera Control Page (0x90)

91

Arcade Page

OAAF Definitions for arcadeand coinop related Devices

92

Gaming Device Page (0x92)2693-F1CFF1D0

Reserved
FIDO Alliance Page (0xF1D0)

27

F1D1-FEFF
FF00-FFFF

Reserved
Vendor-defined
Table 3.1: Usage Page Summary

A bold Usage definition in the following sections identifies a collection. Non-bold definitions are specific features related
to a device that would be applied to individual controls that generate data. In many cases, specific Usages can be usedby a number of device types.

16

3.1

HID Usage Table Conventions

Usage ID 0 should always be reserved.
Usage ID 1 through 0x1F are reserved for top level collections. These Usage IDs are not necessarily application-level but
are used to identify general device types.
Usage page values are limited to 16 bits.
Usage ID values are limited to 16 bits.
Usages are 32-bit identifiers, where the high order 16 bits represents the Usage page and the low order 16 bits represents
the Usage ID. To allow more compact Report descriptors, Usage Page items can be declared to specify the high order
bits of the Usage item and the Usage items can declare only the ID portion of the Usage, as follows:• If the bSize field of the Usage item equals 1 or 2, the entire 1- or 2-byte data portion of the item is interpreted asa Usage ID.
• If the bSize field equals 3, bits 16-31 of the 4-byte data portion of the item are interpreted as a Usage page, andbits 0-15 of the data portion are interpreted as a Usage ID. This interpretation of Usages applies to Usage, Usage
Minimum, and Usage Maximum items.
The notation for a 32-bit Usage (sometimes called an extended Usage) in the examples is:
Usage(Usage Page: Usage ID).

17

3.2

Handling Unknown Usages

If a Usage is unknown to an application then the application should ignore it.
If the Usage attached to a collection is unknown to an application, then the application should ignore the collection andall Usages contained in the collection. A collection can be used to modify the meaning of the Usages that it contains,therefore known Usages within an unknown collection may not represent their original meaning. An example of this is
the Usage Selected Indicator on the LED page.
System software provides capabilities for parsing HID Report descriptors. In some cases the Usage associated with the
top level application collection can be used by the system software as a key to load an application-specific driver or amapping driver for legacy compatibility.

18

3.3

Usages and UnitsFor Usages that declare data items as a measurement of time, distance, force, and so forth, an application must look at
the units to properly interpret the value defined by a Usage, unless:
1. The Usage specifically declares Units as optional.
2. The Usage description defines the units in which the value will be presented.
If Units are set to Optional or set to None (have not been declared) then an application can assume the Usage represents
a dimensionless value. Any application that ignores Units does so at its own risk.
A Usage that declares itself to be a measurement of time would specify whether it was seconds or milliseconds by declaring
Units and Unit Exponent prior to the respective Main item declaration. An example of this is the Flash On Time
Usage on the LED page, which is described as the duration that the indicator is illuminated in flash mode. The duration
would be qualified by the values of Units and Unit Exponent.
When declaring Units for a main item, the Logical Minimum, Logical Maximum, Physical Minimum, PhysicalMaximum, and Unit Exponent items must also be declared.
Note: In many cases the coordinate system assumes that the values can vary both positively and negatively fromzero (0).

19

3.4

Usage Types

Usages define a wide variety of device features. However, the way an application treats the data that they generate falls
into a relatively small set of categories. This section provides descriptions of frequently used types of Usages, primarily tosave redundant text throughout this document. This list is not an exhaustive list of the possible Usage Types. Individual
Usage pages can declare their own Usage Types.
Each Usage Type describes how an application should treat the data generated by the Main item that the Usage is
attached to.
Usage Type names are followed by an abbreviation that is used in the detailed Usage description to identify the default
type of a Usage. In some cases Usage Types do not apply and the detailed description will identify how the Usage is to
be interpreted.
There are three basic types of information that are described by Usages: controls, collections, and data. In this context,
controls are identified with the state of a device (on/off, enable/disable, and so forth), collections group related controls
and data together, and data comprises the remaining information that is passed between a device and the host.
Note: Usage Types are always considered to be the recommended method of handling a Usage. Consult theUsage’s definition to determine whether alternative Usage Types may apply.

3.4.1

Usage Types (Controls)

The following table summarizes the control related Usage Types.
ControlType

LogicalMin

LogicalMax

Flags

SignalOperation

-1

1

Edge

-Min

Max

Min

Max

Relative,
Preferred State
Relative,
Preferred State
Absolute,
Preferred State

1 increments the control’s value.
-1 decrements the control’s value.
n increments the control’s value,-n decrements the control’s value.
The value reported by the control is useddirectly by the host.

-1

1

Edge

0

1

Relative,
No Preferred
Relative,
Preferred State

0

1

Level

Momentary
Control (MC)01Absolute,
No Preferred
Absolute,
Preferred State

One
Shot
Control
(OSC)

0

1

Relative,
Preferred StateEdge

A 0 to 1 transition triggers an event.
A 1 to 0 transition must occur before
another event can be triggered.

Re-trigger
Control
(RTC)

0

1

Absolute,
Preferred StateLevel

1 triggers an event.
When an event
completes, if the value is 1 then the event
will be triggered again.

LinearControl (LC)On/OffControl
(OOC)

Level
N/A

Edge

Level

1 asserts an On condition.
–1 asserts an Off condition.
A 0 to 1 transition toggles the current
On/Off state.
1 asserts an On condition.
0 asserts an Off condition.
1 asserts a condition.
0 deasserts the condition.

Table 3.2: Usage Types (Controls)

3.4.1.1

Linear Control (LC)In many cases, a control of a linear value is implemented as a pair of increment/decrement buttons, a jog wheel, or alinear control such as a knob or a slide.
When implemented as an increment/decrement control, the two buttons must be translated into a single, 2-bit signed
20

value and declared as a Relative Main item with a Report Size equal to 2, where –1 decrements the value, +1 increments
it, and no change occurs when 0 is asserted.
A jog wheel is normally implemented as a spring-loaded knob that returns to a fixed center position when released. This
control reports a single value of two or more bits which are reported as a signed value and declared as a Relative Main
item where ˘n decrements the value, +n increments it, and no change occurs when 0 is asserted. A jog wheel control
is implemented with a resolution of +/˘n, where the offset of the knob from the center position is proportional to thereported value. The Report Size must be declared large enough to contain the signed value n.
When implemented as a linear knob or slide, the control must be declared as an Absolute Main item.
3.4.1.2

On/Off Control (OOC)

An On/Off Control can be implemented in any of the following ways:• Two buttons, On and Off. The two buttons are encoded into a 2-bit signed value and declared as a Relative, No
Preferred, Main item with Logical Minimum and Logical Maximum of –1 and 1, respectively. The transition
from 0 to –1 generates an Off condition and the transition from 0 to +1 generates an On condition. No change
occurs when 0 is asserted.
• A single button that toggles the On/Off state each time it is pressed. (single throw momentary switch)
The single button is encoded into a 1-bit unsigned value and declared as a Relative, Preferred, Main item with a
Logical Minimum and Logical Maximum of 0 and 1, respectively. The transition from 0 to 1 toggles the current
On/Off state. No change occurs on the 1 to 0 transition.
• A toggle switch that maintains the On/Off state mechanically. (toggle switch) This control is encoded
into a 1-bit unsigned value and declared as an Absolute, No Preferred, Main item with a Logical Minimum and
Logical Maximum of 0 and 1, respectively. The assertion of 1 generates an On condition and the assertion of 0
generates an Off condition.
3.4.1.3

Momentary Control (MC)A Momentary Control is a basic push button. A Momentary Control is encoded into a 1-bit value and declared as an
Absolute, Preferred, Main item with a Logical Minimum and Logical Maximum of 0 and 1, respectively. A value of
1 generates an asserted condition and 0 generates a non-asserted condition. An example is a mouse button.
3.4.1.4

One Shot Control (OSC)A One Shot Control is a push button that triggers a single event or action. A One Shot Control is encoded into a 1-bit
value and declared as a Relative, Preferred, Main item with a Logical Minimum and Logical Maximum of 0 and 1,
respectively. A 0 to 1 transition initiates an event. Nothing occurs on a 1 to 0 transition but it is required before anotherevent can occur. An example is degauss.
3.4.1.5

Re-Trigger Control (RTC)

A Re-Trigger Control is a push button that triggers a repeating event as long as it is asserted. A Re-Trigger Control is
encoded into a 1-bit value and declared as an Absolute, Preferred, Main item with a Logical Minimum and LogicalMaximum of 0 and 1, respectively. A 0 to 1 transition initiates the first event. When each event terminates, if thecontrol is still asserted (1) then another event will occur. An example is an autorepeat fire button.

21

3.4.2

Usage Types (Data)

The following table summarizes the data-related Usage Types.
Abbreviation

Type

Flags

Description

Sel

Selector

Array

Contained in a Named Array (NAry).

SV

Static Value

Constant, Variable, Absolute

A read-only multiple-bit value.

SF

Static Flag

Constant, Variable, Absolute

A read-only single-bit value.

DV

Dynamic Value

Data, Variable, Absolute

A read/write multiple-bit value.

DF

Dynamic Flag

Data, Variable, Absolute

A read/write single-bit value.

Table 3.3: Usage Types (Data)
3.4.2.1

Selector (Sel)Selectors come in three forms:• One selection of a set. Radio buttons are a mechanically linked set of buttons where one selection is always valid.
This is a perfect example of the one selection of a set form. A radio button set is defined by a Main item with theArray flag set and the Report Count set to 1. The index returned in the array field corresponds to the pressed
button (or selection). A Usage must be declared for each selection. The array field never returns an index of NULL
because one Usage is always valid. An example is Display Status on Auxiliary Display Page (0x14).
• N selections of a set. More than one selection (button) can be valid at a time. Multiple selections can be returnedto the system at one time in a multi-byte array. The n selections of a set form is defined by a Main item with theArray flag set and the Report Count set to n, where n is the number of selections that can be reported in a single
report. An example is a keyboard.
• Any selection of a set. The control is implemented as a set of bit fields in which each bit represents a single
selection. This control is defined by a Main item with the Variable flag set and the Report Size equal to 1. The
Report Count will be equal to the number of selections in the set.
Selectors therefore can be implemented in a number of ways: Array[1] (one selection of a set), Array[n] (n selections of aset), or bitmap (any selection of a set).
Optionally, the array field or set can be named by wrapping a set of Selectors in a logical collection with a Usage attached
to it. For details, see Section 3.4.3.1 Named Array (NAry)
3.4.2.2

Static Value (SV)

Static values are used to declare a fixed features in a device. They are defined as Constant and treated as read-only
information. Therefore, asserting this field in a Set_Report command has no defined effect.
3.4.2.3

Static Flag (SF)

Static flags are used to declare the existence of a fixed feature in a device. If a Static Flag Usage is found in a Report
descriptor then the field must be read to determine whether the feature identified by the flag exists. A value of 1 indicatesexistence and a value of 0 indicates non-existence. The absence of a Static Flag Usage implies that the flag is false or thefeature defined by the flag is not supported by the device. A Static Flag must be declared as a Constant. To be accessible
by applications, a Static Flag must have a Usage assigned to it.
Static Flags are typically declared in a Feature report as a single-bit field where the value is always read as 1. Attempting
to modify this field in a Set_Report command has no effect on a Static Flag.
3.4.2.4

Dynamic Flag (DF)

Dynamic Flags are used to declare the existence of a host-controllable feature in a device. The absence of a Dynamic Flag
Usage implies that the flag is false or the feature defined by the flag is not supported by the device.
Dynamic Flags are typically declared in a report as a single-bit field, where a value of 1 returned by the device indicatesthat the feature is enabled. The assertion of 1 by the host will cause the feature to be evoked and the assertion of 022

indicates that the feature is to be disabled or ignored if the feature is a one-time event (such as Degauss or Clear Display).
A Dynamic Flag Main item must be declared as Data.
3.4.2.5

Dynamic Value (DV)A Dynamic Value is an n-bit field that contains a value associated with a control. The associated Main item will havethe Data and Variable flags set. A Dynamic Value Main item must be declared as Data.
Note: More advanced devices may allow a Usage declared as a Static type to be Dynamic. Always check theConstant/Data flag in an Input, Output or Feature Main item.

23

3.4.3

Usage Types (Collection)

The following table summarizes the collection-related Usage Types.
Abbreviation

Type

Collection Type

Description

NAry

Named Array

LogicalA collection that encompasses an array definition,naming the array set or the field created by the array.

CA

Application Collection

Application

Applies a name to a top level collection which theoperating system uses to identify a device and possibly
remap to a legacy API.

CL

Logical Collection

LogicalA logical collection of items.

CP

Physical Collection

PhysicalA physical collection of items.

US

Usage Switch

LogicalModifies the purpose or function of the Usages(controls) that it contains.

UM

Usage Modifier

LogicalModifies the purpose or function of the Usages(controls) that contains it.

Table 3.4: Usage Types (Collection)
3.4.3.1

Named Array (NAry)To simplify for an application the process of finding a set of selectors, whether defined as an Array Field or a bitmap,
the set of selectors can be named by wrapping them in a logical collection and applying a Usage to the collection. Usages
applied in this way are called Named Array Usages.
3.4.3.2

Collection Application (CA)The Collection Application Usage type identifies Usages that are used only in application-level collections. An applicationcollection identifies a HID device or a functional subset of a complex device. An operating system uses the Usage associatedwith this collection to link the device to its controlling application or driver. Common examples are a keyboard or mouse.
A keyboard with an integrated pointing device could contain two different application collections.
Note: Data reports cannot span application collections.
3.4.3.3

Collection Logical (CL)The Collection Logical Usage type identifies a Usage applied to a logical collection. Logical collections can be used tofurther define the purpose of the items or controls that they contain.
3.4.3.4

Collection Physical (CP)The Collection Physical Usage type identifies a Usage applied to a physical collection, usually a collection of axes. A
physical collection is used for a set of data items that represent data points collected at one geometric point. This is usefulfor sensing devices that may need to associate sets of measured or sensed data with a single point. It does not indicatethat a set of data values comes from one device, such as a keyboard. In the case of a device that reports the position ofmultiple sensors, physical collections are used to show which data comes from which sensor.
3.4.3.5

Usage Switch (US)The Usage Switch Usage type identifies a Usage applied to a logical collection that modifies the purpose of the Usages inthat collection. An example is indicators. To avoid having to define a Usage for every control that could possibly use an
indicator (for example, Play/Play Indicator, etc.) a Usage Switch collection can be wrapped around a Usage (Play) tocreate a indicator for the same function. Usage Switches often modify the type of the contained Usage as well.
3.4.3.6

Usage Modifier (UM)The Usage Modifier Usage type identifies a Usage applied to a logical collection. This logical collection is always containedin another logical collection. The purpose and possibly the type of the Usage attached to the encompassing collection ismodified. For instance the Usage attached to the encompassing collection may not normally be defined as a collection.
24

3.4.4

Alternate Types

Usage Types are a guide, not the rule. The flags, Logical Minimum and Logical Maximum values, and other
Main item attributes must be evaluated by applications and system software to determine the true purpose, meaning, orinterpretation of a control.
In many cases, a Usage can take on the attributes of a Usage type other than its default type. The alternate type canbe declared by a collection in which the Usage is found or implied by the way it is declared in a Report descriptor. For
example, Usage In Use Indicator from the LED page is an example of an alternate Usage type being applied to a
Usage. When a Usage is wrapped in a Usage In Use Indicator collection, it becomes an On/Off Control (OOC).
In other cases, a Usage can be declared as either a Static Value (SV) or a Dynamic Value (DV). For example, in a screen
saver, the Screen Saver Delay might be fixed on one device and variable on another. The same thing can happen with
Usages declared as Static Flag (SF) or Dynamic Flag (DF).
Another example is a Usage that is declared as either an On/Off Control (OOC) or a Selector (Sel). A device that can
support a variety of operational modes will declare individual bits as On/Off Controls to identify which modes are enabled.
However, when the device is running, only one mode will be in effect at a time. The device would then declare the same
Usage as a Selector and report this in a Named Array field to identify the mode associated with the current data. For
example, a tape transport could have three states: Stopped, Paused, and Playing. This could be implemented as three
individual bits where only one bit is true at a time, or as a 2-bit field in which 0 = Stopped, 1 = Paused, and 3 = Playing.

25

3.5

System Controls

Applications look at the Usage applied to top-level application collections to identify devices. System software that
supports keyboards, mice, and joysticks follow the same conventions. If a device vendor wants a device to be recognizedby the system software as one of these devices, then the device must follow the conventions described in this section.

3.5.1

Keyboard

Typical system software will search for application collections tagged with either a Keyboard or a Keypad Usage. Whenfound, the Usages contained in these collections will be treated as standard system keyboard input. All devices that use
these declarations will have their output routed to the same destination. That is, typing on any device will affect theactive application.

3.5.2

Mice

Typical system software will search for application collections tagged with either a Mouse or a Pointer Usage. Whenfound, the Usages generated by these collections will be treated as standard system pointer input. All devices that use
these declarations will have their output routed to the same destination. That is, moving any mouse will affect the system
pointer.

3.5.3

Joysticks

Typical system software will search for application collections tagged with either a Joystick or a Game Pad Usage. Whenfound, the Usages generated by these collections will be treated as standard system joystick (gaming device) input. Devices
that use these declarations will have their output routed to separate destinations, allowing multiple-player applications.

26

3.6

HID LANGIDs

This section identifies a set of conventions that allow static data to be associated with individual controls. These
conventions are an extension of the string descriptors that can currently be attached to controls.
The first two bytes of a USB string descriptor define the length and type of the descriptor, respectively. The byte wide
length field allows a string to be up to 253 bytes long. The second byte of a string is always the string descriptor type(0x03). These bytes are followed by 16-bit UNICODE characters.
Part

Offset/Size (Bytes)

Description

Sample ValuebLength0/1

Size of this descriptor in bytes.

0x06

bDescriptorType

1/1

String (assigned by USB).

0x03

bString

2/bLength-2

UNICODE encoded string

0x0041, 0x0042 = (AB )Table 3.5: String Descriptor

Strings on a HID device are accessed using a Language ID (LANGID) and a string index. The LANGID is a 16-bit value
where the low order 10 bits are Primary Language ID and the high order 6 bits are the Sublanguage ID. The Primary
Language ID 0xFF has been permanently assigned to the HID class for it’s use. The Sublanguage IDs are defined in Table
3.8 HID Sublanguage IDs . The String Index, String Minimum and String Maximum local items allow string indices tobe associated with individual main items.
0

1

2

3
4
5
6
Primary Language ID

7

8

9

10

0xFF (HID)

11
12
13
14
Sublanguage ID

15

Assigned by HID

Table 3.6: LANGID Format

Individual Usages define which HID LANGIDs they support and any support information the LANGID may require.
Remarks:• If a device declares LANGID’s other than HID LANGID then return an empty string if there is no valid Unicode
representation for it.
• All values are transmitted with little-endian byte alignment and in packed structures unless otherwise stated in the
Usage description.
HID LANGIDs define how their associated string data is to be interpreted.
String descriptors are global to a device and assumed to be static, therefore cacheable. If a device requires that the Private
Data varies as a function Configuration or Interface settings then a device must use nonoverlapping indices to ensure thatstring caches do not need to be invalidated,
To implement HID LANGIDs the following steps are required:
1. String index 0 always defines a list of the LANGIDs supported by the HID device. A HID LANGID must be includedin the list.
2. Any main item that utilizes HID LANGIDs must have a string index attached to it, using String Index, String
Minimum or String Maximum local items.
3. A string must be returned by the device, which contains the data identified by the LANGID.

27

To access a HID LANGID string associated with a control, the host will send a GetDescriptor(STRING_DESCRIPTOR,HID_LANGID, String Index) request to the device, where STRING_DESCRIPTOR = 0x03, the HID_LANGID is defined inTable 3.6 LANGID Format , and the String Index is defined the String local item associated with the control.
Part

Offset (Bytes)

Size (Bytes)

Description

Sample ValuebmRequestType01

Device to Host, Standard, Device

10000000B

bRequest

1

1

GET_DESCRIPTOR

0x06

wValue (High)

2

1

STRING_DESCRIPTOR

0x03

wValue (Low)31String Index

0x03

wIndex

4

2

HID(Usage Defined)

wLength

6

2

Length of string

Table 3.7: GetDescriptor(String) Request

3.6.1

Sublanguage ID

LANGID Name

Description

00
01

Reserved
Usage Data Descriptor

Reserved
Allows a Usage to define a data
structure that is specific to theUsage

02 - 3B
3C
3D
3E
3F

Reserved
Reserved
Vendor Defined HID LANGID 1
Vendor Defined HID LANGID 2
Vendor Defined HID LANGID 3
Vendor Defined HID LANGID 4
Table 3.8: HID Sublanguage IDs

Usage Data Descriptor (0x01)

This HID LANGID allows a Usage to define a private descriptor. A Usage that requires private data must define theformat of the block of data associated with the Usage. The first two bytes of the table are identical to those defined in astandard USB string descriptor: bLength and bDescriptorType. The size and number of remaining fields depends on the
Usage.
Part

Offset (Bytes)

Size (Bytes)

Value

Description

bLength0

1

NumberSizeofdescriptor
bytes

bDescriptorType1

1

Constant

String (assigned
by USB)

Field 1

2

Field 1 size

Usage Dependent

Field 2

Field 1 offset + Field 1 size

Field 2 size

Usage Dependent

Field 3

Field 2 offset + Field 2 size

Field 3 size

Usage Dependent

...

...

...

Usage Dependent

Field nField n − 1 offset + Field n − 1 size

Field n size

Usage Dependent

Table 3.9: Usage Data Descriptor

28

this
in

Usage defined fields

3.6.2

Vendor Defined HID LANGID (0x3C - 0x3F)

Four HID LANGIDs are reserved for vendor specific use. The first two bytes of the table are identical to those defined ina standard USB string descriptor, and up to 253 bytes of data can be defined by the vendor. Note that Vendor Defined
HID LANGIDs allow a vendor to associate additional data with a standard Usage. For Vendor Defined Usages, the Usage
Descriptor LANGID may also be used, since the definition of the Usage Descriptor depends on the Vendor Defined Usage.
The data types supported by Usage Descriptors can expand on those already supported by standard USB descriptors.
These can include 64-bit signed and unsigned integers, 32, 64 and 128-bit IEEE format floating point, etc. The Usage
Descriptor defined by the Usage will provide detailed information about the data types that are used.
Part

Offset (Bytes)

Size (Bytes)

Value

Description

bLength0

1

NumberSize of this descriptor in bytes

bDescriptorType1

1

Constant

String (assigned by USB)

Vendor Defined Data2n (n <= 253)

Vendor Defined

Vendor defined fields

Table 3.10: Vendor Defined Descriptor

29

4

Generic Desktop Page (0x01)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02
03-03
04

Pointer
Mouse
Reserved
Joystick

CP
CA

4.1
4.1

CA

4.1

05

Gamepad

CA

4.1

06

Keyboard

CA

4.1

07

Keypad

CA

4.1

08
09

Multi-axis Controller
Tablet PC System Controls

CA
CA

4.1
4.1

0A

Water Cooling Device [6]

CA

4.1

0B

Computer Chassis Device [6]

CA

4.1

0C

Wireless Radio Controls [13]

CA

4.1

0D

Portable Device Control [23]

CA

4.1

0E

System Multi-Axis Controller [33]

CA

4.1

0F

Spatial Controller [39]

CA

4.1

10

Assistive Control [49]

CA

4.1

11

Device Dock [57]

CA

4.15

12

Dockable Device [57]

CA

4.15

13-2F
30
31
32
33
34

Reserved
X
Y
Z
Rx
Ry

DV
DV
DV
DV
DV

4.2
4.2
4.2
4.2
4.2

35
36
37
38
39
3A
3B

Rz
Slider
Dial
Wheel
Hat Switch
Counted Buffer
Byte Count

DV
DV
DV
DV
DV
CL
DV

4.2
4.3
4.3
4.3
4.3
4.6
4.6

3C

Motion Wakeup

OSC/DF

4.3

3D
3E
3F-3F
40
41

Start
SelectReserved
Vx
Vy

OOC
OOC

4.3
4.3

DV
DV

4.4
4.4

42
43

Vz
Vbrx

DV
DV

4.4
4.4

30

44

Vbry

DV

4.4

45
46
47

Vbrz
Vno
Feature Notification

DV
DV
DV/DF

4.4
4.4
4.8

48

Resolution Multiplier

DV

4.3

49

Qx [39]

DV

4.14

4A

Qy [39]

DV

4.14

4B

Qz [39]

DV

4.14

4C

Qw [39]

DV

4.14

4D-7F
80

Reserved
System Control

CA

4.5

81

System Power Down

OSC

4.5

82

System Sleep

OSC

4.5

83

System Wake Up

OSC

4.5

84

System Context Menu

OSC

4.5

85

System Main Menu

OSC

4.5

86

System App Menu

OSC

4.5

87

System Menu Help

OSC

4.5

88

System Menu Exit

OSC

4.5

89

System Menu Select

OSC

4.5

8A

System Menu Right

RTC

4.5

8B

System Menu Left

RTC

4.5

8C

System Menu Up

RTC

4.5

8D

System Menu Down

RTC

4.5

8E

System Cold Restart

OSC

4.5

8F

System Warm Restart

OSC

4.5

90

D-pad Up

OOC

4.7

91

D-pad Down

OOC

4.7

92

D-pad Right

OOC

4.7

93

D-pad Left

OOC

4.7

94

Index Trigger [39]

MC/DV

4.14

95

Palm Trigger [39]

MC/DV

4.14

96

Thumbstick [39]

CP

4.14

97

System Function Shift [42]

MC

4.5

98

System Function Shift Lock [42]

OOC

4.5

99

System Function Shift Lock Indicator [42]

DV

4.5

9A

System Dismiss Notification [53]

OSC

4.5

9B

System Do Not Disturb [61]

OOC

4.5

9C-9F
A0

Reserved
System Dock

OSC

4.5

A1

System Undock

OSC

4.5

31

A2

System Setup

OSC

4.5

A3

System Break

OSC

4.9

A4

System Debugger Break

OSC

4.9

A5

Application Break

OSC

4.9

A6

Application Debugger Break

OSC

4.9

A7

System Speaker Mute

OSC

4.5

A8

System Hibernate

OSC

4.5

A9-AF
B0

Reserved
System Display Invert

OSC

4.10

B1

System Display Internal

OSC

4.10

B2

System Display External

OSC

4.10

B3

System Display Both

OSC

4.10

B4

System Display Dual

OSC

4.10

B5

System Display Toggle Int/Ext Mode

OSC

4.10

B6

System Display Swap Primary/Secondary

OSC

4.10

B7

System Display Toggle LCD Autoscale

OSC

4.10

B8-BF
C0

Reserved
Sensor Zone [6]

CL

4.11

C1

RPM [6]

DV

4.11

C2

Coolant Level [6]

DV

4.11

C3

Coolant Critical Level [6]

SV

4.11

C4

Coolant Pump [6]

US

4.11

C5

Chassis Enclosure [6]

CL

4.11

C6

Wireless Radio Button [13]

OOC

4.12

C7

Wireless Radio LED [13]

OOC

4.12

C8

Wireless Radio Slider Switch [13]

OOC

4.12

C9

System Display Rotation Lock Button [24]

OOC

4.10

CA

System Display Rotation Lock Slider Switch [24]

OOC

4.10

CB

Control Enable [22]

DF

4.13

CC-CF
D0

Reserved
Dockable Device Unique ID [57]

DV

4.15

D1

Dockable Device Vendor ID [57]

DV

4.15

D2

Dockable Device Primary Usage Page [57]

DV

4.15

D3

Dockable Device Primary Usage ID [57]

DV

4.15

D4

Dockable Device Docking State [57]

DF

4.15

D5

Dockable Device Display Occlusion [57]

CL

4.15

D6

Dockable Device Object Type [58]

DV

4.15

D7-FFFF

Reserved
Table 4.1: Generic Desktop Page

32

4.1

Application Usages

Usage Name

Usage Type

Description

PointerCP

A collection of axes that generates a value to direct, indicate, or point user intentions
to an application.

Mouse

CA

JoystickCA

A hand-held, button-activated input device that when rolled along a flat surface,
directs an indicator to move correspondingly about a computer screen, allowing theoperator to move the indicator freely in select operations or to manipulate text orgraphics. A mouse typically consists of two axes (X and Y) and one, two, or threebuttons.
A manual control or cursor device. A joystick minimally consists of two variableaxes (X and Y) and two buttons. A joystick is typically a rotational motion sensor.
However, for legacy reasons, it is defined using linear axes.
Traditionally, a joystick driver applies its own scaling to values returned
from a joystick. That is, the driver simply linearizes and translates the range ofvalues generated by the stick into normalized values between 0 and 64K, where
32K is centered. The application (game) then interprets the normalized values asnecessary. Because of this, joysticks normally do not declare Units or Physical
Minimum and Physical Maximum values for their axes. Depending on thedriver, these items may be ignored if they are declared.

GamepadCA

A manual control or cursor device. A game pad minimally consists of a
thumb-activated rocker switch that controls two axes (X and Y) and has four
buttons. The rocker switch consists of four contact closures for up, down, right,
and left.
The primary computer input device. A Keyboard minimally consists of 103
buttons as defined by the Boot Keyboard definition.

Keyboard

CA

KeypadCA

Any keyboard configuration that does not meet the minimum requirements of
the Boot Keyboard. Keypad often refers to a supplementary calculator-style
keyboard.

Multi-axis
Controller

CA

An input device used to orient eyepoints and or objects in 3 dimensional space. A
Multi-axis Controller typically consists of six, variable axes (X, Y, Z, Rx, Ry and Rz)
and is used by CAD/digital content creation applications for model manipulationand visualization in 3D space. The device may incorporate zero or more buttons.

Tablet PC
SystemControls

CA

System controls on Tablet PCs. This collection is not intended to contain display oraudio data nor touchscreen input. Appropriate controls might be buttons, wheels, or
simple indicators. This collection is intended to be opened by the operating system
in exclusive mode and is not meant for application developers to open directly.

Water
Cooling
DeviceCA

A collection of sensors and controls that represents a device using liquid to provide
cooling of a thermal environment. A water cooling device contains at least one
thermal reporting control.

Computer
ChassisDeviceCA

A collection of usages that represent data about the condition, state, and controls of
sensors and devices attached to a chassis containing the motherboard and associatedcomponents (e.g., processor, graphics controller, hard drives) of a computing device.

Wireless
Radio
Controls
Portable
DeviceControlCA

A collection of buttons or switches that enable all-wireless radio communication to
be turned on/off.

CA

A collection of controls on the portable devices, for example, volume controls,
rotation lock, power, camera controls, home button, etc.

33

System
Multi-Axis
ControllerCA

A collection of controls that may contain the same controls as listed in Multi-Axis
Controller (Usage 0x08) and/or additional associated controls such as wheels, dials,
buttons etc... for exclusive use of the System.

SpatialControllerCA

A handheld input device that users move freely through space to provide positionand orientation input.

Assistive
ControlCA

A manual control or cursor device. An assistive control device may consist of buttons
or a pointing input control to communicate.

34

4.2

Axis Usages

For X, Y, Z, Rx, Ry, and Rz, the declaration of Units is optional. If Units is None or not declared, these values should
be considered as dimensionless.
Usage Name

Usage Type

Description

X

DV

A linear translation in the X direction. Report values should increase as the control’s
position is moved from left to right.

Y

DV

A linear translation in the Y direction. Report values should increase as the control’s
position is moved from far to near.

Z

DV

A linear translation in the Z direction. Report values should increase as the control’s
position is moved from high to low (Z).

Rx

DV

Ry

DV

Rz

DV

A rotation about the X axis. Angular position report values follow the righthandrule.
A rotation about the Y axis. Angular position report values follow the righthandrule.
A rotation about the Z axis. Angular position report values follow the righthand
rule.

35

4.3

Miscellaneous Controls

Usage Name

Usage Type

Description

Slider

DV

Dial

DV

A linear control for generating a variable value, normally in the form of a thumbslide in a slot. Report values should increase as controls are moved from near to
far.
A rotary control for generating a variable value, normally in the form of a knob
spun by the index finger and thumb. Report values should increase as controls are
spun clockwise. This usage does not follow the HID orientation conventions.

Wheel

DV

A rotary control for generating a variable value, normally rolled, unlike a dial.
Report values should increase as controls are rolled forward, away from the user.
This usage does not follow the HID orientation conventions.

Hat Switch

DV

A specialized mechanical configuration of switches generating a variable value with a
NULL state. The switches are arranged around a springloaded knob. When the knob
is tilted in the direction of a switch, its contacts are closed. A typical example is four
switches that are capable of generating information about four possible directions
in which the knob can be tilted. Intermediate positions can also be decoded if the
hardware allows two switches to be reported simultaneously.

Motion Wakeup

DF

Enables the generation of a USB remote wakeup when the device detects motion.
Motion Wakeup is always enabled after a USB Reset event is detected by thedevice. Then host can also assume that the state of the Motion Wakeup flag ismaintained while the device is suspended.
For example, a mouse may generate a remote wakeup when a button is pressed orwhen it is moved. For some implementations, a laptop user may want to disable
the wakeup on motion because it draws more power.

Start

OOC

Session start button. Initiates a session within an application.

SelectOOC

Application option select button. Selects application configuration options.

Resolution
Multiplier

DV

Defines a Resolution Multiplier for a Control.

36

4.3.1

Resolution Multiplier

A HID describes the resolution of a control by using the methods described in the HID Specification, v1.11, section 6.2.2.7
Global Items – Remarks. However, the resolution of a control in this model is static. If a device has the capability tovary the resolution of one or more of its controls, the resolution of those controls can be set by defining an associatedResolution Multiplier control.
The Resolution Multiplier control must be contained in the same Logical Collection as the control(s) to which it is to be
applied. If no Resolution Multiplier is defined, then the Resolution Multiplier defaults to 1. If more than one control exists
in a Logical Collection, the Resolution Multiplier is associated with all controls in the collection. If no Logical Collection
is defined, the Resolution Multiplier is associated with all controls in the report.
The Resolution Multiplier is applied after all the normal resolution calculations have been performed for an affected
control. The Resolution Multiplier is calculated as below:
EffectiveResolutionMultiplier =
RMV − LMin× (PMax − PMin) + PMin × 10UnitExponent
LMax − LMin

Variable

Description

RMV

Resolution Multiplier Value

LMin

Logical Minimum

LMax

Logical Maximum

PMin

Physical Minimum

PMax

Physical Maximum

For example, if a Wheel Control is defined as below:
Usage Page (Generic Desktop) (0x01)
Usage (Wheel) (0x38)
Logical Minimum (-127)
Logical Maximum (127)
Report Count (1)Report Size (8)Input (Data, Var, Rel)
Then, the Wheel control delivers one count per detent via a 1-byte field of an Input Report. However if a Resolution
Multiplier feature is included in the report with the Wheel as below:
Collection (Logical)
Usage Page (Generic Desktop) (0x01)
Usage (Resolution Multiplier) (0x48)
Logical Minimum (0)Logical Maximum (15)Physical Minimum (1)Physical Maximum (16)
Report Size (4)Report Count (1)Feature (Data, Var, Abs)
Usage Page (Generic Desktop) (0x01)
Usage (Wheel) (0x38)
Logical Minimum (-127)
Logical Maximum (127)
Report Count (1)Report Size (8)Input (Data, Var, Rel)
End Collection
37

Then, the Effective Resolution Multiplier for the Wheel may vary from 1 to 16 depending on the setting of the Resolution
Multiplier feature. If the Resolution Multiplier feature is set to 7, then the Effective Resolution Multiplier is 8, meaningthat the resolution of the Wheel control is 8 counts per detent.
Negative Effective Resolution Multipliers may be used to reverse the sense of a control.
Because OS implementations will generally divide the control’s reported count by the Effective Resolution Multiplier,designers should take care not to establish a potential Effective Resolution Multiplier of zero. This may be done by
ensuring that Physical Min and Physical Max are nonzero and have the same sign.
The Resolution Multiplier is a scalar (unitless) multiplier. It may not be used to convert units from one system to another.

38

4.4

Vector Usages

For the usages Vx, Vy, Vz, Vbrx, Vbry, Vbrz, and Vno, Units are always required to determine the meaning of the vector.
Rotational vectors are also identified by Units. These usages are used when declaring velocity, acceleration, force, electricfield, and similar kinds of vectors in the respective direction and frame of reference.
Usage Name

Usage Type

Description

Vx

DV

A vector in the X direction. Report values should increase as the vector increases
in the positive X direction (from left to right). Negative values represent vectors in
the negative X direction.

Vy

DV

A vector in the Y direction. Report values should increase as the vector increases
in the positive Y direction (from far to near). Negative values represent vectors in
the negative Y direction.

Vz

DV

A vector in the Z direction. Report values should increase as the vector increases
in the positive Z direction (from high to low). Negative values represent vectors in
the negative Z direction.

Vbrx

DV

A vector in the X direction relative to the body of an object. Report values should
increase as the vector increases in the positive X direction (forward). Negativevalues represent vectors in the negative X direction. X is the forward axis for an
object.

Vbry

DV

A vector in the Y direction relative to the body of an object. Report values should
increase as the vector increases in the positive Y direction (to the right from an
observer facing forward on the object). Negative values represent vectors in thenegative Y direction.

Vbrz

DV

Vno

DV

A vector in the Z direction relative to the body of an object. Report values should
increase as the vector increases in the positive Z direction (down from an observer
facing forward on the object). Negative values represent vectors in the negative Z
direction.
A non oriented vector or value. The units define a physical measurement not related
to a specific axis or orientation. An example would be pressure or temperature.

39

4.5

System Controls

System controls are a special category of usages that affect the system as a whole. They are pulled together in a System
Control collection to make them easy for system software to identify.
Usage Name

Usage Type

Description

System Control

CA

A application-level collection that contains system-software-specific usages.
System software will search specifically for this collection for those controlsthat affect the system globally.

System Context Menu

OSC

Evokes a context-sensitive menu.

System Main Menu

OSC

Evokes the OS main-level selection menu.

System App Menu

OSC

Displays an application-specific menu.

System Menu Help

OSC

Displays the help menu.

System Menu Exit

OSC

Exits a menu.

System Menu SelectOSC

Selects a menu item.

System Menu Right

RTC

Menu select right.

System Menu Left

RTC

Menu select left.

System Menu Up

RTC

Menu select up.

System Menu Down

RTC

Menu select down.

System Function ShiftMC

System Function Shift
Lock

OOC

Indicates the state of the feature. 1=on, 0=off. Usually this maps directly
to the state of the Fn key, but may be reversed if the System Function Shift
Lock is also on.
Locks the System Function Shift state. This is an On/Off control witha recommended implementation of Relative, Preferred State for physically
non-locking keys, and Absolute, No Preferred state for physically locking
keys.

System Function Shift
Lock Indicator
System Dismiss
Notification

DV

The value of a visual indicator of System Function Shift Lock.

OSC

Dismisses active notification (e.g. pop-ups/alerts) from system environments
and applications that arrest the user’s attention (e.g. Voice Assistants, VOIP
calls, Alarms). Many modern devices have a paradigm of dismissing such
notifications using the Power button.

System Do Not
Disturb

OOC

Toggle system-wide Do Not Disturb (DND) mode On/Off.

4.5.1

Power Controls

Power controls can step the system through the following states: Full Power, Low Power, and Power Down. Power control
usages found in a System Control collection affect system level power. Those declared outside of a System Collection
affect device level power.
Usage Name

Usage Type

Description

System Power Down

OSC

Asserted when the intended action is to initiate system-wide power down now
from Full Power or Sleep states.

System Sleep

OSC

Asserted when the intended action is to initiate system-wide low power mode
now. If the system is already in the Low Power state, there is no effect.

System Wake Up

OSC

Asserted when the intended action is to initiate system-wide Full Power state
now. If the system is already in the Full Power, there is no effect.

40

System Cold Restart

OSC

Asserted when the intended action is to restart the system at the mostprimitive level, similar to at Power Up.

System Warm Restart

OSC

System Dock

OSC

Asserted when the intended action is to restart the operating system but notnecessarily the lowest level functions such as BIOS enumeration and RAM
checks.
Asserted when the intended action is to prepare a portable system for docking
with a docking station.

System Undock

OSC

Asserted when the intended action is to prepare a portable system for removalfrom a docking station.

System Setup

OSC

Asserted when the intended action is to enter the BIOS-level system setup
program.

System Speaker Mute

OSC

Asserted when the intended action is to mute the system speaker.

System Hibernate

OSC

Asserted when the intended action is to place the system in a "deeper" sleep
state than System Sleep

System Sleep

Full
Power
System Power Down

Low
Power
System Wake Up
Power
Down

Figure 4.1: System Power States

41

4.6

Buffered Bytes

The following usages provide a standard way of defining the operation of a buffered-byte field where the number of valid
bytes in the field is less than the total number of bytes in the field and the vendor does no define a NoOp value to markunused bytes.
When declaring a buffered-byte field, the global item Report Size should always be set to 8 (for byte cells), and theReport Count should be equal to the maximum size of the buffer to be transferred.
Usage Name

Usage Type

Description

CountedBufferCL

Byte Count

DV

Used with buffered–byte data to indicate the number of valid bytes in thebuffered-byte field. This collection always contains two field declarations: Byte
Count and a usage that names the purpose of the buffered-byte field. The Main
item associated with the purpose usage will always have the Buffered Bytes attribute
set.
Defines a report field that indicates the number of meaningful data bytes in an
associated buffered-byte field.

42

4.7

Direction Pads

A Direction Pad or D-Pad control is mechanically identical to a hatswitch, however for legacy reasons their data isinterpreted as X and Y axes rather than as an angular direction.
D-pads are typically defined as a pair of X and Y axes that are contained in a logical Pointer collection. There are cases
where an application may be interested in the raw D-pad data. The following usages are defined in a report descriptor as
single bit fields that identify the current state of the position switches in the D-pad.
Note: A device may declare a Pointer collection with X and Y axes, and D-pad usages for the same control.
An application can determine which data format best suits it’s needs.
Usage Name

Usage Type

Description

D-pad Up

OOC

Indicates that top of a Direction Pad is pressed.

D-pad Down

OOC

Indicates that bottom of a Direction Pad is pressed.

D-pad Right

OOC

Indicates that right side of a Direction Pad is pressed.

D-pad Left

OOC

Indicates that left side of a Direction Pad is pressed.

43

4.8

Feature Notifications

It may be useful to alert the host that the contents of a Feature report have changed without redundantly declaring a usage
in an Input report, especially is the changes are only occasional. The Feature Notification usages provides a mechanism
for doing this.
Usage Name

Usage Type

Description

FeatureNotification

DV

This usage is declared in an Input report and is used as a notification to the hostthat the contents of a specific Feature report has changed.
If Report IDs are declared in the device’s report descriptor then the Report Sizeof the Feature Notification must be greater than 1, and the Feature Notification
field contains the Report ID of the Feature report that whose contents havechanged. A zero value indicates that no Feature reports have changed. Multiple
Feature report IDs can be reported in a single Input report by declaring theReport Count to be greater than 1.
If Report IDs are not declared in the device’s report descriptor then theReport Size of the Feature Notification equals 1, and the Input report field equals
1 if the Feature report contents have changed. A zero value indicates that no
Feature reports have changed.
When a valid Feature Notification is received, the host must issue a
GetReport(Feature) request to the device with the appropriate report ID.

44

4.9

Software Flow Controls

The following usages provide standard controls to break into the current operation of the system.
Usage Name

Usage Type

Description

System BreakOSCAsserted when the intended action is to acquire the attention of the operating
system in order to control applications. This operation could interrupt all runningapplications.

System
Debugger BreakOSCAsserted when the intended action is to break into the operating system debugger.
If no OS debugger is running, the control is ignored.

Application
Break

OSC

Asserted when the intended action is to acquire the attention of an application.
This operation interrupts only the foremost running application.

Application
Debugger BreakOSCAsserted when the intended action is to break into the application debugger. If noapplication debugger is running, the control is ignored.

45

4.10

System Display Controls

Many systems currently support multiple displays. Of special note are portable systems with captive displays that may
be connected to external displays. The following usages provide standard controls for common display control functions:
Usage Name

Usage Type

Description

System Display Invert

OSC

Causes the display to render in inverted colors.

System Display Internal

OSC

Causes the system to use the captive display as the primary display.

System Display External

OSC

Causes the system to use the external display as the primary display.

System Display Both

OSC

Causes the system to use both internal and external displays as theprimary display.

System Display Dual

OSC

Causes the system to use both internal and external displays as primaryand secondary displays.

System Display Toggle
Int/Ext Mode

OSC

Causes a system to step between the modes as described above:• System Display Internal• System Display External• System Display Both

System Display Swap
Primary/Secondary

OSC

Causes a system using two displays in dual mode to swap the primaryand secondary displays.

System Display Toggle
LCD Autoscale

OSC

Causes a system with a non-scaleable geometry, such as an LCD, to scale
the display image to fit the physical geometry of the display.

System Display Rotation
Lock Button

OOC

Indicates the current state of a system display rotation lock on/off
momentary push button. State must be reported once for every buttonpress.

System Display Rotation
Lock Slider Switch

OOC

Indicates the absolute value for the state of system display rotation lock.
State must be reported when it goes from 0 to 1 as well as from 1 to 0.

46

4.11

Computer Sensor Controls

Advances in the enthusiast class personal computer has led to the development of intelligent water cooling devices,chassis, and power supplies that provide addition status, monitoring, and control information to the user on the healthand capabilities of their system. In addition to the raw sensor data, the sensors can be grouped into logical thermaland control zones to represent different operating areas within the device (e.g., thermal zones around the processor, hard
drives, or PCI-E slots).
Usage Name

Usage Type

Description

Sensor Zone

CL

A logical collection that represents a grouping of sensors or other controls
within a device that control a common physical region or physical function
within the device when one or more physical regions exist.

RPM

DV

Indicates or controls the current revolutions per minute of a rotating device(e.g., fan). This usage shall be represented as units of rotations per minute.

Coolant Level

DV

Indicates the current level of coolant in its coolant containment container.
This usage shall be represented as a percentage with a logical minimum ofzero and a logical maximum of 100.

Coolant Critical Level

SV

Indicates the level at which the coolant is below a critical threshold at which
the potential for damage exists.

Coolant Pump

US

This collection allows the usages that it contains to be associated with acoolant pump. In this collection one or more RPM usages are found.

Chassis Enclosure

CL

This collection represents the dimensions of a computer chassis.
collection shall contain an X, Y, and Z usage.

47

This

4.12

Wireless Radio Controls

Usage Name

Usage Type

Description

Wireless Radio Button

OOC

Indicates the current state of a wireless on/off momentary push button. State
must be reported once for every button press.

Wireless Radio LED

OOC

Indicates the current state of wireless communication to the user. This willreflect the state of the overall system radio state.

Wireless Radio Slider
SwitchOOC

Indicates the absolute value for the state of radio communications. State
must be reported when it goes from 0 to 1 as well as 1 to 0.

48

4.13

Generic Controls

Usage Name

Usage Type

Description

Control Enable

DF

Enable or disable the controls within the current logical collection. A valueof 1 indicates that the controls in the same logical collection are enabled. A
value 0 indicates they are disabled.
When disabled, controls that are declared without the NULL attribute
will keep their last values. Controls that declare the NULL attribute will bein a NULL state without further state changes. Also, such controls that are
not in NULL that get disabled will move to NULL and input controls should
generate a report to that effect. Feature and output reports will changesilently.

49

4.14

Spatial Controls

A spatial controller is a handheld input device that users move freely through space to provide position and orientation
input. The spatial controller’s orientation is represented as a rotation relative to its neutral orientation. The neutralorientation is the controller’s orientation when sitting flat on a surface pointing forward along the negative Y axis, withgravity pointing down along the positive Z axis and with X increasing from the Controller’s left to its right. The forward
direction in the XY plane is unspecified and implementation-specific. This rotation is expressed as a unit quaternion(Qx/Qy/Qz/Qw).
If the Spatial Controller reports position in addition to orientation, the translation axes must correspond to the rotation
axes.
Note: Expressing a rotation as a quaternion avoids ambiguity about the order in which the host must apply
the three axis rotations. Many applications also choose to use quaternions instead of Euler angles in theirown logic to avoid gimbal lock. Surfacing quaternions directly to such apps from the device’s firmware reduces
precision loss caused by the conversion from Rx/Ry/Rz.
Usage Name

Usage Type

Description

Qx

DV

Qy

DV

Qz

DV

Qw

DV

Index Trigger

MC/DV

The X component of a unit quaternion, representing a rotation in space about aunit vector. Rotations represented by quaternion report values follow the right-handrule.
The Y component of a unit quaternion, representing a rotation in space about aunit vector. Rotations represented by quaternion report values follow the right-hand
rule.
The Z component of a unit quaternion, representing a rotation in space about a unit
vector. Rotations represented by quaternion report values follow the right-handrule.
The W component of a unit quaternion, representing a rotation in space about aunit vector. Rotations represented by quaternion report values follow the right-handrule.
The pressure applied to an input device’s index-finger trigger, indicating that theuser is pulling their index finger. This usage can be a DV for an analog trigger oran MC for a digital trigger.

Palm Trigger

MC/DV

The pressure applied to an input device’s palm trigger, indicating that the user isclosing their fist tightly around the controller. This usage can be a DV for an analog
trigger or an MC for a digital trigger.

ThumbstickCP

An input device’s two-axis thumb-operated control stick. The thumbstick’s X value
increases from left to right and its Y value increases from bottom to top. A
thumbstick is typically a rotational motion sensor. However, for legacy reasons,
it is defined using linear axes.

50

Up

Forward

X+
Right

Y+

GravityZ+
Figure 4.2: Spatial Controller Orientation

51

4.15

Dockable Devices

In many computing systems, there are cases where a potentially non-HID Dockable Devices can be physically attached
to a system or another device - whether for storage, to charge, or for ergonomic usage of the device relative to the needs ofthe computing system. While modern operating systems may be able to detect some elements of this attachment thoughdevice enumeration or ACPI information, there are use cases where rich information specific to the state of the Dockable
Device’s attachment to the system can be valuable.
For example, a digital pen which only communicates with a digitizer within a short range may not be able to communicatethat it has been attached to a pen holder on the device for the system to update UI showing the pen has been connected.
Other representations may disable a Dockable Device’s connection to the host when placed in a dock to allow for
reduced power consumption.
In other cases, the Device Dock itself may have access to information that the Dockable Device may not. In a systemwith a horizontal display, for example, it may be possible for a sensor to detect exactly where a Dockable Device orother object has been placed relative to the display, so that the system may adjust placement of UI around it, while theobject itself is incapable of detecting or reporting this information.
Usage Name

Usage Type

Description

Device DockCA

A device that reports the presence of a Dockable Device physically attachedto the system.

Dockable DeviceCA

A device describing a Dockable Device that can be physically attached tothe system.

Dockable Device
Unique ID

DVSpecifies the unique ID identifying the device which has been docked.

Dockable Device
Vendor ID

DVThis is an optional Usage - if the Dockable Device does not havea Dockable Device Unique ID or the Device Dock is not capable ofreading the Dockable Device Unique ID from the device, this would
not be provided. If provided, the Dockable Device Unique ID must be
unique for the USB-IF VendorId, specified by Dockable Device Vendor
ID below. For example, this could contain the unique serial number ofthe Dockable Device or a product identifier if a serial number cannot beprovided.
Specifies the USB-IF VendorId of the Dockable Device, used in combination
with Dockable Device Unique ID to uniquely identify the device.
This is an optional Usage. If provided, this must be a 16-bit value.

Dockable Device
Primary Usage Page

DV

Specifies the UsagePage of the primary top-level collection of the Dockable
Device (in the case of a complex HID device), to allow the system tounderstand which Dockable Device has been docked.
This is an optional Usage which can be useful in cases where theDockable Device is not connected to the system, or is not capable ofreporting a unique serial number, in conjunction with Dockable Device
Primary Usage ID. For a Dockable Device with multiple HID top-level
collections, the value of this Usage is defined by the vendor.

Dockable Device
Primary Usage ID

DV

Specifies the UsageId of the primary top-level collection of the Dockable
Device (in the case of a complex HID device).
This is an optional Usage, used in conjunction with Dockable Device
Primary Usage Page. For a Dockable Device with multiple HID
top-level collections, the value of this Usage is defined by the vendor.

52

Dockable Device
Docking StateDF

A bit that indicates if the Dockable Device is currently attached to thesystem.
This is a required Usage. A report with this bit set would indicate
the Dockable Device is physically attached to the system. A report withthis bit cleared would indicate the Dockable Device has been physicallydetached from the system.

Dockable Device
Display Occlusion

CL

A physical collection describing what portion of a display is occluded by theDevice Dock.
This collection is optional – it would not be reported if the supported
Dockable Device cannot occlude the display. This collection could
include values like X, Y, Width (in mm), Height (in mm), Azimuth, etc.
for rectangular-shaped occlusions. Future Usages could support otherDockable Device shapes.

Dockable Device
Object TypeDV

An enum which specifies the type of object which is being docked.
This is an optional usage. It is possible that there could be multiple
Dockable Objects placed relative to the display that also include different
objects types such as:• 0: Unspecified.
• 1: HID Device.
• 2: Display.
• 3: NFC Device.

53

5

Simulation Controls Page (0x02)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Flight Simulation Device

CA

5.2

02
03
04

Automobile Simulation Device
Tank Simulation Device
Spaceship Simulation Device

CA
CA
CA

5.3
5.4
5.2

05
06

Submarine Simulation Device
Sailing Simulation Device

CA
CA

5.5
5.5

07

Motorcycle Simulation Device

CA

5.6

08

Sports Simulation Device

CA

5.1

09

Airplane Simulation Device

CA

5.2

0A

Helicopter Simulation Device

CA

5.2

0B

Magic Carpet Simulation Device

CA

5.7

0C

Bicycle Simulation Device

CA

5.6

0D-1F
20

Reserved
Flight Control Stick

CA

5.2

21

Flight Stick

CA

5.2

22

Cyclic Control

CP

5.2

23

Cyclic Trim

CP

5.2

24

Flight Yoke

CA

5.2

25
26-AF
B0
B1
B2

Track Control
Reserved
AileronAileron Trim
Anti-Torque Control

CP

5.4

DV
DV
DV

5.2
5.2
5.2

B3

Autopilot Enable

OOC

5.2

B4
B5
B6
B7
B8
B9
BA
BB
BC

Chaff ReleaseCollective Control
Dive Brake
Electronic Countermeasures
Elevator
Elevator Trim
RudderThrottle
Flight Communications

OSC
DV
DV
OOC
DV
DV
DV
DV
OOC

5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2
5.2

BD
BE

Flare Release
Landing Gear

OSC
OOC

5.2
5.2

BF
C0

Toe Brake
Trigger

DV
MC

5.2
5.2

C1

Weapons Arm

OOC

5.2

C2

Weapons Select

OSC

5.2

54

C3

Wing Flaps

DV

5.2

C4
C5
C6
C7
C8

Accelerator
Brake
ClutchShifter
Steering

DV
DV
DV
DV
DV

5.3
5.3
5.3
5.3
5.3

C9
CA
CB
CC
CD

Turret Direction
Barrel Elevation
Dive Plane
BallastBicycle Crank

DV
DV
DV
DV
DV

5.4
5.4
5.5
5.5
5.6

CE
CF
D0
D1-FFFF

Handle Bars
DV
Front Brake
DV
Rear Brake
DV
Reserved
Table 5.1: Simulation Controls Page

5.6
5.6
5.6

55

5.1

Sports Simulation Device

Usages employed by Stick Devices and Exercise Machines are defined on the Sports Controls page. For details, see Section
7 Sport Controls Page (0x04)
Usage Name

Usage Type

Description

SportsSimulation
DeviceCAThis usage definition allows a device to be generally classified as one that uses
standard controls found on a sports simulation device.

56

5.2

Flight Simulation Devices

Usage Name

Usage Type

Description

FlightSimulation
DeviceSpaceship
Simulation
DeviceAirplane
Simulation
DeviceHelicopter
Simulation
DeviceAileronCA

This usage definition allows a device to be generally classified as one that uses thestandard controls found on an airplane.

CA

This usage definition allows a device to be generally classified as one that uses
standard controls found on a spaceship.

CA

This usage definition allows a device to be generally classified as one that uses
standard controls found on an airplane.

CA

This usage definition allows a device to be generally classified as one that uses
standard controls found on a helicopter.

DV

An aileron is one of two movable flaps on the wings of an airplane that can beused to control the plane’s rolling and banking movements. In the zero position
the ailerons are centered, positive values will move the right aileron up and the left
aileron down, and negative values will have the opposite effect on the ailerons.

Aileron Trim

DV

Allows fine adjustment of the Aileron position. The zero position is the nominal
position, positive values will move the right aileron up and the left aileron down,
and negative values will have the opposite effect on the ailerons.

Anti-TorqueControl

DV

This control mechanically behaves the same as rudder pedals; as one is pushedforward, the other pushes back. In a helicopter, this controls the pitch of the tailblade to spin the helicopter in place. The zero position is centered, positive values
rotate right, and negative values rotate left.

Autopilot
EnableOOC

This control enables or disables an airplane’s autopilot. This should be a toggle
switch, but it is typically implemented as a pushbutton.

Chaff Release

OSC

Collective
Control

DV

Chaff is strips of metal, foil, or glass fiber with a metal content, cut into various
lengths and having varying frequency responses. It is used to reflect electromagnetic
energy as a radar countermeasure. These materials, usually dropped from aircraft,also can be deployed from shells or rockets. Typically this a pushbutton that
initiates a release of a fixed amount of material.
This control is specifically for a helicopter. It controls the vertical acceleration orlift of the helicopter. The zero position is centered (level flight), positive values
accelerate up, and negative values accelerate down.

CyclicControlCP

Cyclic Trim

CP

Dive Brake

DVElectronic
OOC
Countermeasures

This control is specifically for a helicopter. A cyclic control is a stick between thepilot’s legs that moves in two axes. It controls the swash plate, which in turn controls
horizontal acceleration of the helicopter. The zero position is centered, positive Y
values accelerate forward, and negative Y values accelerate backward. Positive X
values accelerate right, and negative X values accelerate left. This collection willcontain X and Y axes.
This control is specifically for a helicopter. Cyclic Trim allows fine adjustment of
the cyclic position in two dimensions. The zero position is the nominal position,
positive values adjust the baseline acceleration right or forward, and negative values
adjust the baseline acceleration left or backward, respectively. This collection willcontain X and Y axes.
A flap that can be extended on an aircraft to increase drag and reduce the speed ofdescent. It is typically implemented as a lever that generates a dimensionless value
between no braking (0) and full braking.
A pushbutton that enables electronic countermeasures. This is typically active radar
jamming; however Chaff (radar) or Flare (infrared) can be invoked.
57

Elevator

DV

A movable control surface, usually attached to the horizontal stabilizer of an aircraft,that is used to produce motion up or down. The zero position is centered, positive
values raise the elevator, and negative values lower the elevator.

Elevator Trim

DV

FlightCommunications

OOC

Elevator Trim allows fine adjustment of the Elevator position. The zero position is
the nominal position, positive values are elevator offset up, and negative values areelevator offset down.
In combat aircraft, a communication (comm) button is usually positioned under
the index finger. Typically this is a two-position pushbutton where the first
position enables communications with the crew and the second position enables
the transmitter for communication external to the plane.

Flare Release

OSC

A flare is a device that produces a bright light for signaling, illumination,
identification, or heat for infrared missile countermeasures. Typically this is apushbutton that releases a fixed number of flares.

FlightControl StickCA

A Flight Control Stick controls the Pitch and Roll of an airplane. It looks like a
joystick. The stick may be pushed forward or pulled back to move the tail elevator
down or up, respectively. Pushing forward causes the plane to nose down. Tilting
the stick right and left alters the position of the ailerons. In the zero position theailerons are centered, tilting the stick to the right will move the right aileron up
and the left aileron down, and tilting the stick to the left direction will have theopposite effect on the ailerons.
Mechanically, a stick presents two degrees of rotational freedom with approximately
a +/–45° range. However, these axes are represented as Generic Desktop Pagetranslational axes X (Roll) and Y (Pitch).

Flight StickCA

A Flight Stick defines a class of device commonly used for flight simulator games.
For a device to qualify as a Flight Stick, it must support at least two axes (Pitch
and Roll), a trigger button, three additional buttons, and a hat switch. A Flight
Stick is a functional subset of a Flight Control Stick.

Landing Gear

OOC

A control for raising or lowering an airplane’s landing gear. This should be a toggle
switch, but it is typically implemented as pushbutton.

RudderDV

Toe BrakeDV

The zero position is centered, positive values turn right, and negative values turnleft.
A device for slowing or stopping the motion of an airplane when it is on the ground.
Typically, Toe Brakes consist of two foot pedals that affect the left and right brakes,
respectively. Control of the Toe Brakes can allow steering of the plane as well as
braking when it is on the ground. An analog Toe Brake generates a dimensionlessvalue between 0 and full scale. In some implementations, the Toe Brake can simply
be a pushbutton (full on or off).

Throttle

DV

TriggerMC

Weapons Arm

OOC

This device is normally a covered toggle switch that must be selected to enable theweapons system.

Weapons SelectOSC

This device can either be a pushbutton that steps through the available weapons
or a radio button that selects them individually.

A valve that regulates the flow of a fluid, such as the valve in an internal-combustion
engine that controls the amount of vaporized fuel entering the cylinders. A lever orpedal controlling such a valve generates a dimensionless value between 0 and fullscale.
A lever pressed by the finger to release or activate a mechanism, typically used todischarge a firearm. However, a Trigger can be used for many devices. In combat
airplanes the Trigger is usually positioned under the thumb; for a gun it would bepositioned under the index finger. Typically this is implemented as a pushbutton.

58

Wing Flaps

DV

Flight YokeCA

Wing flap controls are usually powered either hydraulically or by electric motors,
and are used for low-speed control of an airplane. A flap generates a value between
0 and full extension.
A flight yoke (also called a control wheel) controls the pitch and roll of an airplane.
It looks like a bow tie grasped by both hands. The yoke at which the pilot sits
may be pushed forward or pulled back to move the tail elevator down or up,
respectively. In the zero position the elevator is centered for level flight. Pushing
forward on the yoke causes the plane to nose down and generates negative values.
Pulling back on the yoke causes the plane to nose up and generates positive values.
Rotating the yoke alters the position of the ailerons. In the zero position
the ailerons are centered. Rotating the yoke in a clockwise direction will movethe right aileron up and the left aileron down and generate incrementing values.
Rotating the yoke in the counterclockwise direction will have the opposite effect on
the ailerons and generate decrementing values.

59

5.3

Automobile Simulation Devices

Usage Name

Usage Type

Description

Automobile
Simulation
DeviceAccelerator

CA

This usage definition allows a device to be generally classified as one that uses thestandard controls found in an automobile or truck.

DV

A device, especially the gas pedal of a motor vehicle, for increasing speed. An
Accelerator is a dimensionless single degree-of-freedom dynamic value, where therange of values is from zero to maximum acceleration.

Brake

DV

A device for slowing or stopping motion, as of a vehicle, especially by contact
friction.
A Brake can be an On/Off Control or a dimensionless single
degree-of-freedom dynamic value, where the range of values is from zero to maximum
braking.

ClutchDV

A device for disengaging the transmission of a vehicle to allow shifting of gears. A
Clutch can be a generic button or a dimensionless single degree-of-freedom dynamic
value, where the range of values is from zero to maximum clutch actuation.

ShifterDV

A device for shifting gears in a vehicle. A Shifter is a specialized mechanicalconfiguration of a radio button. A zero value is returned when the shifter is in
the neutral position. Positive values indicate the forward gear and negative values
indicate the reverse gear that the device is in.

Steering

DV

A steering wheel is a single degree-of-freedom device that rotates about an axis. The
zero position is always the neutral or straight ahead position, with positive values
turning clockwise and negative values turning counterclockwise. If the Coordinate
Values Wrap attribute is set, the steering wheel can be turned past 360°.

60

5.4

Tank Simulation Devices

Usage Name

Usage Type

Description

Tank
Simulation
DeviceTrack Control

CA

This usage definition allows a device to be generally classified as one that uses
standard controls found in a tank or a treaded vehicle.

CP

A device for controlling the direction and velocity of a vehicle that is driven by
tracks. There can be either two sticks with one degree of freedom or a single stickwith two degrees of freedom:
In the two-stick case, the neutral position is when the stick is centered (zero).
Pushing the stick forward causes forward acceleration (positive values), and pullingit back causes reverse acceleration (negative values). The righthand and lefthandcontrols will affect the corresponding side of the vehicle.
In the one-stick case, forward/backward acceleration works the same as in
the two-stick case. However, right or left movement of the stick determines theamount of power applied to the respective track. When the stick is centeredhorizontally, equal amounts of power are applied to both tracks, generating a zero
output value. Moving the stick to the right will generate positive values, andmoving the stick to the left will generate negative values. A Tank Track Control
is a dimensionless analog entity.

TurretDirection

DV

This control determines the right-to-left positioning of the tank turret. A valueof zero maintains the current orientation of the turret. A positive value turns theturret to the right and a negative value turns the turret to the left.

Barrel Elevation

DV

This control determines the elevation of the gun barrel in a turret. A value of zero
maintains the current orientation of the barrel. A positive value raises the barrel
and a negative value lowers the barrel.

61

5.5

Maritime Simulation Devices

Usage Name

Usage Type

Description

Submarine
Simulation
DeviceDive PlaneCA

Allows a device to be generally classified as one that uses the standard controls ofa submarine.

DV

Dive planes control the vertical ascent or descent of the submarine under power. A
zero value indicates level travel. Positive values indicate ascent, and negative values
indicate descent. A Dive Plane is a dimensionless analog entity.

BallastDV

Ballast controls the vertical ascent or descent of the submarine. A zero value
indicates level travel. Positive values indicate ascent, and negative values indicate
descent. A Ballast is a dimensionless analog entity.

Sailing
Simulation
DeviceCA

Allows a device to be generally classified as one that uses the standard controls ofa sailboat.

62

5.6

Two-wheeled Simulation Devices

Usage Name

Usage Type

Description

Motorcycle
Simulation
DeviceBicycleSimulation
DeviceBicycle Crank

CA

Allows a device to be generally classified as one that uses the standard controls ofa motorcycle.

CA

Allows a device to be generally classified as one that uses the standard controls ofa bicycle.

DV

A foot-operated assembly of pedals attached to a crank that is used for powering abicycle. The reported value is the rate that the crank turns per minute.

Handle BarsDV

A steering control, held in both hands, for a motorcycle or bicycle. A zero output
value indicates that the direction of travel is straight ahead. Pulling back on theright side turns the vehicle to the right and generates a positive output. Pullingback on the left side turns the vehicle to the left and generates a negative output.

Front Brake

DVEngages the front brake of the motorcycle to slow the vehicle. A Front Brake canbe a generic button or a dimensionless single degree-of-freedom analog entity, where
the range of values is from zero to maximum braking.

Rear Brake

DVEngages the rear brake of the motorcycle to slow the vehicle. A Rear Brake can bea generic button or a dimensionless single degree-of-freedom analog entity, where
the range of values is from zero to maximum braking.

63

5.7

Miscellaneous Simulation Devices

Usage Name

Usage Type

Description

Magic Carpet
Simulation
DeviceCA

Allows a device to be generally classified as one that uses the standard control of amagic carpet. This control is a bar, grasped by both hands, that controls the Yaw,
Pitch and Roll of the carpet.
The bar, at which the pilot sits, may be pushed forward or pulled back tocause the carpet to dive or rise, respectively. In the zero position, the carpet isin level flight. Pushing forward on the bar causes the carpet to nose down andgenerates negative values. Pulling back on the bar causes the carpet to nose up
and generates positive values.
Turning the bar turns the carpet. In the zero position, the carpet travels
straight ahead. Pulling back on the right side turns the carpet to the right andgenerates positive values. Pulling back on the left side turns the carpet to the left
and generates negative values.
Rotating the bar rolls the carpet. In the zero position, the carpet travels
level. Rotating the bar in a clockwise direction rolls the carpet to the right andgenerates positive values. Rotating the bar in the counterclockwise direction rolls
the carpet to the left and generates negative values.

64

6

VR Controls Page (0x03)

Virtual Reality controls depend on designators to identify the individual controls. Most of the following are usages areapplied to the collections of entities that comprise the actual device.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02

Belt
Body Suit

CA
CA

6.1
6.1

03
04
05
06

FlexorGlove
Head Tracker
Head Mounted Display

CP
CA
CP
CA

6.1
6.1
6.1
6.1

07
08
09
0A
0B-1F
20
21

Hand Tracker
Oculometer
Vest
Animatronic Device
Reserved
Stereo Enable
Display Enable

CA
CA
CA
CA

6.1
6.1
6.1
6.1

OOC
OOC

6.2
6.2

22-FFFF

Reserved
Table 6.1: VR Controls Page

65

6.1

VR Control Devices

Usage Name

Usage Type

Description

Belt

CA

A Belt wraps around the user’s waist. A tracker would be centered in the small of
the user’s back to identify the orientation of the user’s hips.

Body Suit

CA

FlexorCP

Generally classifies a device as one that uses the standard controls found in a Body
Suit. A Body Suit typically has a large number of position sensors typically fixed
to the major joints of the body, such as the ankles, knees, hips, shoulders, elbows,
wrists and head, for measuring the angle and movement of the wearer’s joints andlimbs.
A Flexor describes the angle of bend of a joint or limb in the body. The designatoris used to determine which joint a specific Flexor entity represents.

Glove

CA

A Glove reports the positions of the fingers. Up to 20 angular values can be reported.
Designators are used to determine the degrees of freedom that the Glove device iscapable of reporting.

Head Tracker

CP

A Head Tracker represents the position and/or orientation of the head in space.
The axes are oriented such that, in the zero position, the user is looking from thepositive Z axis to the negative Z axis. The positive Y axis is extends vertically fromthe top of the user’s head.

Head
Mounted
DisplayCA

A Head Mounted Display (HMD) presents the following parameters to the user:
Vbrx, Vbry, and Vbrz. Stereo Enable and Display Enable are optional usages thatcan be included in an HMD collection.

Hand Tracker

CA

A Hand Tracker represents the position of the hand in space. A Hand Tracker
attaches to the back of the hand. In the zero position, it is assumed that the handis held upright with the extended thumb parallel to the Y axis and the fingers
pointing in the negative Z direction.

OculometerCA

An Oculometer identifies the direction in which the eye is looking in rotation about
the X and Y axes. The designator for an Oculometer is always Eye.

Vest

CA

Animatronic
DeviceCA

A Vest wraps around the user’s chest and abdomen. A tracker would be placed on
the user’s back between the shoulder blades.
An input device for the animation of mechanical or Computer Graphic Image
electronic puppets. An animatronic device is engineered to fit a puppeteer’s or
performer’s body (and/or head and/or face) and comfortably allow a wide rangeof physical freedom.
An Animatronic Device measures the angle and movement of the wearer’s
joints and limbs, which are then translated into the motion of a puppet, allowing
the puppet to mimic the wearer’s movements. There is not necessarily a 1:1
mapping of human to puppet controls. A puppeteer’s arm may be used to control
the movement of an elephant’s trunk, or hand controls may be used to control
facial expressions. Designators are used to determine which puppeteer joint isbeing tracked. The controlling application will map these inputs to the electronic
or mechanical device.

66

6.2

VR Controls

Usage Name

Usage Type

Description

Stereo Enable

OOC

Selects the display mode of the HMD. A value of 0 selects monoscopic mode and 1
selects stereoscopic mode.

Display Enable

OOC

Enables the HMD video output. A value of 0 turns off the display and 1 turns it
on.

67

7

Sport Controls Page (0x04)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02
03

Baseball Bat
Golf Club
Rowing Machine

CA
CA
CA

7.1
7.1
7.2

04
05-2F
30
31

Treadmill
Reserved
Oar
Slope

CA

7.2

DV
DV

7.2
7.2

32
33

Rate
Stick Speed

DV
DV

7.2
7.1

34

Stick Face Angle

DV

7.1

35

Stick Heel/Toe

DV

7.1

36

Stick Follow Through

DV

7.1

37

Stick Tempo

DV

7.1

38

Stick Type

NAry

7.1

39

Stick Height

DV

7.1

3A-4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C

Reserved
Putter
1 Iron2 Iron3 Iron4 Iron5 Iron6 Iron7 Iron8 Iron9 Iron10 Iron
11 Iron
Sand Wedge

Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel

7.1
7.1
7.1
7.1
7.1
7.1
7.1
7.1
7.1
7.1
7.1
7.1
7.1

5D

Loft Wedge

Sel

7.1

5E

Power Wedge

Sel

7.1

5F
60
61
62
63
64-FFFF

1 WoodSel
3 WoodSel
5 WoodSel
7 WoodSel
9 WoodSel
Reserved
Table 7.1: Sport Controls Page

68

7.1
7.1
7.1
7.1
7.1

7.1

Stick Devices

Stick devices are used in applications in which the user swings one object to make contact with another. Typical examples
are a baseball bat and a golf club. These devices sense various quantities at the point of impact to determine the directionthat the target (struck) object will go. The target object is a sphere. The Stick usages Speed, Face Angle, Heel/Toe,
Follow Through, Tempo, and Height identify the measurement quantities.
Usage Name

Usage Type

Description

Baseball Bat

CA

Primary input device for baseball simulation applications. Normally consistsof a collection of Stick usages.

Golf ClubCA

Primary input device for golf simulation applications. Normally consists of acollection of Stick usages.

Stick Speed

DV

The velocity with which the stick strikes the target object. This can be
expressed as collection of velocity values to provide a direction, or as an
absolute magnitude where the Stick Face Angle provides the direction.

Stick Face Angle

DV

The direction in which the stick strikes the target object. In a golf simulation,
this will be the horizontal angle and the vertical angle will be determined by
the Stick Type. For Baseball Bats and other stick devices the direction isexpressed as a three-dimensional vector.

Stick Heel/Toe

DV

Stick Follow ThroughDV

Identifies the contact point relative to the striking surface. This helps to
identify the sweet spot. This is reported as a relative value where zero is the
sweet spot, positive values are away from the user, and negative values aretowards the user.
In a golf simulation, the user strikes the ball, swings the club forward overthe shoulders, then brings the club back to the tee. Stick Follow Through is ameasure of the time that this process takes. Other stick devices may provide
this parameter as well.

Stick Tempo

DV

Stick TypeNAry

In a golf simulation, the user starts the swing at the ball, swings the club backover the shoulders, then strikes the ball. Stick Tempo is a measure of thetime that this process takes. Other stick devices may provide this parameteras well.
An array that identifies the type of golf club used.

Irons 1 – 11, Woods 1,
3, 5, 7, 9, Sand Wedge,
Loft Wedge, Power
Wedge, and Putter

Sel

Golf club stick types. Stick type determines the stick face angle.

Stick Height

DV

Height of contact point above the ground for stick device.

69

7.2

Exercise Machines

Bicycles can be found in Section 5.6 Two-wheeled Simulation Devices
Usage Name

Usage Type

Description

Rowing
MachineCA

An exercise device that simulates rowing a boat. Usages typically found in thiscollection are Oars and Rate. Rate is typically expressed in strokes per minute.

Oar

DV

Rowing repetition rate in strokes per minute. Left, right and twohanded oars are
distinguished with designators.

TreadmillCAAn exercise device consisting of an endless moving belt on which a person can walkor jog while remaining in one place. Usages typically found in this collection are
Slope and Rate. The Rate is typically expressed in strokes per minute.

Rate

DV

Rate in miles per hour.

Slope

DV

Slope is measured in degrees. Positive angles are uphill, negative angles are downhill,
and 0° is level.

708Game Controls Page (0x05)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02
03
04-1F
20
21

3D Game Controller
Pinball Device
Gun Device
Reserved
Point of View
Turn Right/Left

CA
CA
CA

8.1
8.2
8.3

CP
DV

8.1
8.1

22

Pitch Forward/Backward

DV

8.1

23

Roll Right/Left

DV

8.1

24

Move Right/Left

DV

8.1

25

Move Forward/Backward

DV

8.1

26

Move Up/Down

DV

8.1

27

Lean Right/Left

DV

8.1

28

Lean Forward/Backward

DV

8.1

29

Height of POV

DV

8.1

2A

Flipper

MC

8.2

2B

Secondary Flipper

MC

8.2

2C

Bump

MC

8.2

2D
2E
2F

New Game
Shoot Ball
Player

OSC
OSC
OSC

8.2
8.2
8.2

30
31

Gun Bolt
Gun Clip

OOC
OOC

8.3
8.3

32

Gun Selector

NAry

8.3

33

Gun Single Shot

Sel

8.3

34
35
36

Gun Burst
Gun Automatic
Gun Safety

Sel
Sel
OOC

8.3
8.3
8.3

37

Gamepad Fire/Jump

CL

8.4.1

38-38
39

Reserved
Gamepad Trigger

CL

8.4.1

3A

Form-fitting Gamepad

SF

8.4.1

3B-FFFF

Reserved
Table 8.1: Game Controls Page

71

8.1

3D Game Controller

The following controls support first-person games or those that are played through the eyes of the character that represents
the player in the 3D world.
Usage Name

Usage Type

Description

3D GameController
Point of View

CA

A collection of 3D movement usages.

CP

Turn Right/Left

DV

A collection of rotational axes (Rx, Ry, and Rz) that represent the orientationof the user’s head in 3D space. If applied to a Hat Switch, only the Rz (Yaw)axis will be controlled.
Identifies the horizontal facing direction of the player’s hips (Rz = Yaw).
Turn Right/Left is a relative value where 0° is straight ahead, positive values
turn right, and negative values turn left. The rate of rotation is determinedby the application.

Pitch
Forward/Backward

DV

Identifies the vertical facing direction of the player’s hips (Rx = Pitch). Pitch
Right/Left is a relative value where 0° is a vector pointing up from the players
hips to the players head, positive values bend back, and negative values bend
forward. The rate of rotation is determined by the application.

Roll Right/Left

DV

Identifies the vertical facing direction of the player’s hips (Ry = Roll). Roll
Forward/Backward is a relative value where 0° is a vector pointing up fromthe players hips to the players head, positive values lean left, and negativevalues lean right. The rate of rotation is determined by the application.

Move Right/Left

DV

This control allows the player to sidestep or move right and left withoutchanging the orientation of the hips. Move Right/Left is a relative value
where 0 is no lateral motion, positive values move right, and negative moveleft. The rate of movement is determined by the application.

Move
Forward/Backward

DV

This control allows the player to move forward and backward in the direction(yaw) the hips are facing. Move Forward/Backward is a relative value where
0 is no motion, positive values move backward, and negative move forward.
(Note: These directions may appear counter-intuitive but they are consistent
with the HID orientation conventions.) The rate of movement is determinedby the application.

Move Up/Down

DVThis control allows the player to move up and down. It is assumed thatthe player can fly, is swimming, or is at a ladder or a climbable wall. Move
Up/Down is a relative value where 0 is no motion, positive values move down,
and negative move up. (Note: These directions may appear counter-intuitive
but they are consistent with the HID orientation conventions.) The rate of
movement is determined by the application.

Lean Right/Left

DV

This control allows the player to lean right and left from the hips, withoutchanging the orientation of the hips, for example, to look around a corner.
Lean Right/Left is a relative value where 0 is no lateral motion, positive values
move right, and negative move left. The rate of movement is determined by
the application.

Lean
Forward/Backward

DV

This control allows the player to lean forward and backward from the hips inthe direction (yaw) the hips are facing. Lean Forward/Backward is a relativevalue where 0 is no motion, positive values move backward, and negative
move forward. (Note: These directions may appear counter-intuitive but they
are consistent with the HID orientation conventions.) The rate of movement
is determined by the application.

72

Height of POV

DV

This control allows the player to stand, squat, and crawl. Height of POV isa relative value where 0 is the normal standing position and positive values
lower the player’s Point Of View. The maximum value as indicated by LogicalMaximum is the crawling position, the median positive value is the squatting
position, and negative values indicate the player is standing on tiptoes or
flying. (Note: These directions may appear counter-intuitive but they are
consistent with the HID orientation conventions.)

73

8.2

Pinball Device

Pinball is a game played on a device in which the player operates a plunger to shoot a ball down or along a slanted surface
that has obstacles and targets.
Usage Name

Usage Type

Description

Pinball
DeviceFlipperCA

A collection of usages representing the controls of a pinball game.

MC

Secondary
FlipperMC

A button that actuates a bar that swings around a pivot to change the directionof the ball. A pair of right and left flippers normally resides at the near end of thetable.
A button that actuates a bar that swings around a pivot to change the direction of
the ball. Secondary flippers normally reside on the sides halfway up the table.

Bump

MC

New Game

OSC

Shoot Ball

OSC

PlayerOSC

A control that indicates that the flipper assembly has been shoved by the player tochange the direction of the ball. This can be as simple as a switch or as complex asa 3D force vector.
A button that terminates any current game and reinitializes for a new game.
A control that indicates that the player has placed the ball into play. This can be
as a switch or a force vector.
A button that cycles through the number of players supported by the game.

74

8.3

Gun Device

A Gun Device is used in battle and war game simulations.
Usage Name

Usage Type

Description

Gun DeviceCA

A collection of Gun usages that describes a hand-held projectile weapon.

Gun Bolt

OOC

Gun Clip

OOC

A control that indicates the state of the gun bolt. A value of 1 indicates that thebolt is locked and ready to fire, and 0 indicates that the bolt is open, ready for the
next shell.
A control that indicates whether the gun clip is inserted. A value of 1 indicatesthat the clip is inserted, and 0 indicates that the clip is missing.

Gun Selector

NAry

This control identifies the firing mode of the weapon. Typically it is a mutually
exclusive set of usages for single shot, burst, and fully automatic firing that arepresented as an array input.

Gun Single Shot

Sel

Selects a single shot each time the trigger is pulled.

Gun Burst

Sel

Selects a short burst (three shots) each time the trigger is pulled.

Gun Automatic

Sel

Places the gun in fully automatic mode where it will fire continuously while thetrigger is pulled.

Gun Safety

OOC

A control that indicates whether safety is enabled. A value of 1 indicates that the
gun is enabled to fire, and 0 indicates that gun will not fire when the trigger ispulled.

75

8.4

Gamepads

The following Usages are targeted at gamepads however they can be used for any devices.
Gamepads use Start and Select buttons allow simple menu control. Select allows auser to linearly step through application
options. If an option can be varied (i.e. volume, game speed, etc.) then the D-pad is typically used to modify it’s value.
A user indicates the final acceptance of an option by pressing Start. See Section 4 Generic Desktop Page (0x01) for theStart and Select button usage definitions.
Gamepad recommendations:1. All gamepad controls should have associated Physical descriptors.
2. If a gamepad control is labeled an associated String descriptor should be declared.

8.4.1

Gamepad Button Collections

Usages in the Gamepad Button Collections are assigned from the Button Page where Button 1 is the easiest for the user
to access. Ideally, Button 1 is under the users finger when it is at rest. Button 2 is the next easiest to access and so on.
The default gamepad is assumed to have the D-pad under the users left thumb and the Fire/Jump buttons under theright thumb.
The individual Gamepad Button collections can also support chorded commands. A Chorded command is invoked bysimultaneously pressing multiple buttons with multiple fingers. By separating the buttons into thumb and index finger
groups it will be possible for an application to identify whether a gamepad can support chorded commands.
An application should assume that if more than one button is pressed (true) in a collection that only the first buttonpressed is true. Or the lowest Button (Usage ID) is pressed if two or more buttons in the same collection become true inthe same report.
Gamepad Fire/Jump and Trigger buttons are defined with the following conventions: Button 0 is the primary (or easiest
to access) button, Button 1 is the secondary button, Button 3 is the tertiary button, and so on. Designators can beapplied if more detail is required.
Usage Name

Usage Type

Description

GamepadFire/Jump

CL

A collection of gamepad buttons controlled by the user’s thumb.

Gamepad Trigger

CL

A collection of gamepad buttons controlled by the user’s index fingers.

Form-fitting Gamepad

SF

Indicates that the Gamepad is form-fitting (e.g. to a mobile device).
• Value of 1 means that the Gamepad is form-fitting.
• Value of 0 means that the Gamepad is not form-fitting.

76

9

Generic Device Controls Page (0x06)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Background/Nonuser Controls [4] [65]

CA

9.1

02-1F
20

Reserved
Battery Strength

DV

9.2

21
22
23
24

Wireless Channel
Wireless ID
Discover Wireless Control
Security Code Character Entered

DV
DV
OSC
OSC

9.2
9.2
9.2
9.2

25

Security Code Character Erased

OSC

9.2

26

Security Code Cleared

OSC

9.2

27

Sequence ID [5]

DV

9.1

28

Sequence ID Reset [5]

DF

9.1

29

RF Signal Strength [5]

DV

9.1

2A

Software Version [32]

CL

9.3

2B

Protocol Version [32]

CL

9.3

2C

Hardware Version [32]

CL

9.3

2D

Major [32]

SV

9.3

2E

Minor [32]

SV

9.3

2F

Revision [32]

SV

9.3

30

Handedness [40]

NAry

9.4

31

Either Hand [40]

Sel

9.4

32

Left Hand [40]

Sel

9.4

33

Right Hand [40]

Sel

9.4

34

Both Hands [40]

Sel

9.4

35-3F
40

Reserved
Grip Pose Offset [40]

CP

9.4

41

Pointer Pose Offset [40]

CP

9.4

42-FFFF

Reserved
Table 9.1: Generic Device Controls Page

77

9.1

Background/Nonuser Controls

The current Consumer Page Consumer Control Collection is used to report status of a variety of controls and states suchas media transport, application launch buttons, etc. . . The Background/Nonuser Controls collection is for device events
that may occur when a user is not present. This will assist the host in separating events that imply user presence. This
separation permits the host to respond to such events but not be required to do things such as change monitor powerstates or wake screen savers, etc. . .
Usage Name

Usage Type

Description

Background/Nonuser
Controls

CA

Collection of controls that do not imply user presence. These controls
will still wake a suspended host by canceling screen savers or othersimilar activities.

78

9.2

Device Controls

Usage Name

Usage Type

Description

Battery Strength

DV

The current battery status. Proportion of battery life remaining
where Logical Minimum and Logical Maximum define therange. NULL values indicate unknown battery status.

Wireless Channel

DV

The logical wireless channel that a wireless device is using.
Actual values depend on the wireless protocol used.

Wireless ID

DV

Uniquely identifies a wireless device in a wireless subsystem.
Actual values depend on the wireless protocol used.

Discover Wireless Control

OSC

Initiates or enables discovery of nearby wireless devices.

Security Code Character Entered

OSC

Indicates that a single security code character was entered.

Security Code Character Erased

OSC

Indicates that a single security code character was erased.

Security Code Cleared

OSC

Indicates that the entire security code was erased.

Sequence ID

DV

Value increments with each output report to allow detectionof missed packets when using a wireless medium. When value
reaches Logical Maximum it cycles back to Logical Minimum.

Sequence ID ResetDF

Flag is used in conjunction with Sequence ID to indicate thata new sequence starting at the Sequence ID Logical Minimum
has begun.

RF Signal Strength

DV

The current battery status. Strength of wireless device signal
where Logical Minimum and Logical Maximum define the range.
NULL values indicate unknown signal strength.

Note: The relationship between a Wireless Channel and a Wireless ID is unspecified. Either or both can beused by a device.

79

9.3

Versioning

Usage Name

Usage Type

Description

Software Version

CL

This is a collection used for software version information. Typical use would
be to indicate a software or firmware version in major.minor.revision
format.
Note: Version information for a device should be in the device descriptor.
This version information is intended for attached devices where there is no
associated descriptor.

Protocol Version

CL

This is a collection used for protocol version information.

Hardware Version
Major

CL
SV

This is a collection used for hardware version information.
Major version number.

Minor
RevisionSV
SV

Minor version nimber.
Revision version number.

80

9.4

Device Grip Controls

Some controllers support equivalent operation in either hand, while other controllers are dedicated by their physical form
to either left-hand or right-hand operation. For a dedicated left-hand or right-hand controller, the host OS will need toknow the physical nature of the controller to avoid guessing at handedness with unnecessary heuristics. The Bias physicaldescriptor was originally meant to surface this type of fixed handedness information, but real-world HID parsers do not
generally in practice support physical descriptors. These explicit usages enable controllers to self-describe handedness
with feature reports, which is a more common mechanism.
Different controller models may have varying physical forms while sharing a common tracking technology. The host OS
may use a common driver to track the physical position of a family of controllers that share a tracking technology, eventhough the relative positions of key points on the controller reported to application software may differ between controller
models. Enabling a controller to self-describe the offset from its tracking origin to key parts of the controller enables asingle host driver to support many related controllers.
Usage Name

Usage Type

Description

HandednessNAry

The hand or hands in which a device is designed to be held during typicaloperation.

Either Hand

Sel

Held in a single hand, either left or right.

Left Hand

Sel

Held in just the left hand.

Right Hand

Sel

Held in just the right hand.

Both Hands

Sel

Held in both hands.

Grip Pose Offset

CPThe device’s fixed transform in position and rotation of its grip pose2 relative
to its tracking pose 1 .

Pointer Pose Offset

CPThe device’s fixed transform in position and rotation of its pointer pose3
relative to its tracking pose1 .

1 A device’s tracking pose is the oriented point within its physical body that its tracking technology will locate when determining thecontroller’s position and orientation. Depending on the host OS, this point may not be directly reported to application software.
2 A device’s grip pose is the oriented point within its physical body where the user’s palm holds the device. The grip pose’s position is apoint along the ray normal to the user’s palm at its centroid, centered within the controller’s grip. The grip pose’s orientation has its forwardaxis pointed along the handle of the controller in the direction of the user’s thumb. The grip pose’s orientation has its right axis pointed along
the ray normal to the user’s palm when opened to form a flat 5-finger pose. (forward from the left palm and backward from the right palm)
3 A device’s pointer pose is the oriented point at its tip where users would expect a pointing ray to emerge. The pointer pose’s orientation
has its forward axis pointing along the device’s natural pointing ray, with the up axis aligned to point straight up away from gravity when thecontroller is held in its neutral pointing orientation.

81

Keyboard/Keypad Page (0x07)

10This section is the Usage Page for key codes to be used in implementing a USB keyboard. A Boot Keyboard (84-, 101or 104-key) should at a minimum support all associated usage codes as indicated in the Boot column below.
The usage type of all key codes is Selectors (Sel), except for the modifier keys Keyboard Left Control (0x224) to Keyboard
Right GUI (0x231) which are Dynamic Flags (DV).
Note: A general note on Usages and languages: Due to the variation of keyboards from language to language,
it is not feasible to specify exact key mappings for every language. Where this list is not specific for a key
function in a language, the closest equivalent key position should be used, so that a keyboard may be modified
for a different language by simply printing different keycaps. One example is the Y key on a North American
keyboard. In Germany this is typically Z. Rather than changing the keyboard firmware to put the Z Usage
into that place in the descriptor list, the vendor should use the Y Usage on both the North American andGerman keyboards. This continues to be the existing practice in the industry, in order to minimize the numberof changes to the electronics to accommodate other languages.
Usage ID

Usage Name

Usage Type

AT-101

PC-AT

Mac

Unix

00-00

Reserved

01

Keyboard ErrorRollOver1

Sel

N/A

3

3

3

4/101/104

02

Keyboard POSTFail

Sel

N/A

3

3

3

4/101/104

03

Keyboard ErrorUndefined1

Sel

N/A

3

3

3

4/101/104

04

Keyboard a and A2

Sel

31

3

3

3

4/101/104

05

Keyboard b and B

Sel

50

3

3

3

4/101/104

06

Keyboard c and C2

Sel

48

3

3

3

4/101/104

07

Keyboard d and D

Sel

33

3

3

3

4/101/104

08

Keyboard e and E

Sel

19

3

3

3

4/101/104

09

Keyboard f and F

Sel

34

3

3

3

4/101/104

0A

Keyboard g and G

Sel

35

3

3

3

4/101/104

0B

Keyboard h and H

Sel

36

3

3

3

4/101/104

0C

Keyboard i and I

Sel

24

3

3

3

4/101/104

0D

Keyboard j and J

Sel

37

3

3

3

4/101/104

0E

Keyboard k and K

Sel

38

3

3

3

4/101/104

0F

Keyboard l and L

Sel

39

3

3

3

4/101/104

10

Keyboard m and M2

Sel

52

3

3

3

4/101/104

11

Keyboard n and N

Sel

51

3

3

3

4/101/104

12

Keyboard o and O2

Sel

25

3

3

3

4/101/104

13

Keyboard p and P

2

Sel

26

3

3

3

4/101/104

14

Keyboard q and Q2

Sel

17

3

3

3

4/101/104

15

Keyboard r and R

Sel

20

3

3

3

4/101/104

16

Keyboard s and S

Sel

32

3

3

3

4/101/104

17

Keyboard t and T

Sel

21

3

3

3

4/101/104

18

Keyboard u and U

Sel

23

3

3

3

4/101/104

1

82

Boot

Usage ID

Usage Name

Usage Type

AT-101

PC-AT

Mac

Unix

19

Keyboard v and V

1A

Sel

49

3

3

3

4/101/104

Keyboard w and W2

Sel

18

3

3

3

4/101/104

1B

Keyboard x and X2

Sel

47

3

3

3

4/101/104

1C

Keyboard y and Y

2

Sel

22

3

3

3

4/101/104

1D

Keyboard z and Z2

Sel

46

3

3

3

4/101/104

1E

Keyboard 1 and !

Sel

2

3

3

3

4/101/104

1F

Keyboard 2 and @2

Sel

3

3

3

3

4/101/104

20

Keyboard 3 and #

2

Sel

4

3

3

3

4/101/104

21

Keyboard 4 and $2

Sel

5

3

3

3

4/101/104

22

Keyboard 5 and %

2

Sel

6

3

3

3

4/101/104

23

Keyboard 6 and ∧2

Sel

7

3

3

3

4/101/104

24

Keyboard 7 and &

2

Sel

8

3

3

3

4/101/104

25

Keyboard 8 and *2

Sel

9

3

3

3

4/101/104

26

Keyboard 9 and (2

Sel

10

3

3

3

4/101/104

27

Keyboard 0 and )

Sel

11

3

3

3

4/101/104

28

Keyboard Return (ENTER)3

Sel

43

3

3

3

4/101/104

29

Keyboard ESCAPE

Sel

110

3

3

3

4/101/104

2A

Keyboard DELETE (Backspace)4

Sel

15

3

3

3

4/101/104

2B

Keyboard Tab

Sel

16

3

3

3

4/101/104

2C

Keyboard Spacebar

Sel

61

3

3

3

4/101/104

2D

Keyboard - and (underscore)2

Sel

12

3

3

3

4/101/104

2E

Keyboard = and +

Sel

13

3

3

3

4/101/104

2F

Keyboard [ and {2

Sel

27

3

3

3

4/101/104

30

Keyboard ] and }2

Sel

28

3

3

3

4/101/104

31

Keyboard \and |

Sel

29

3

3

3

4/101/104

32

Keyboard Non-US # and ˜5

Sel

42

3

3

3

4/101/104

33

Keyboard ; and :

Sel

40

3

3

3

4/101/104

34

Keyboard ‘ and “2

Sel

41

3

3

3

4/101/104

35

Keyboard Grave Accent and Tilde

Sel

1

3

3

3

4/101/104

36

Keyboard , and <2

Sel

53

3

3

3

4/101/104

37

Keyboard . and >

Sel

54

3

3

3

4/101/104

38

Keyboard / and ?2

Sel

55

3

3

3

4/101/104

39

Keyboard Caps Lock

Sel

30

3

3

3

4/101/104

3A

Keyboard F1

Sel

112

3

3

3

4/101/104

3B

Keyboard F2

Sel

113

3

3

3

4/101/104

3C

Keyboard F3

Sel

114

3

3

3

4/101/104

3D

Keyboard F4

Sel

115

3

3

3

4/101/104

2

2

2

2

2

2

6

83

Boot

Usage ID

Usage Name

Usage Type

AT-101

PC-AT

Mac

Unix

3E

Keyboard F5

3F

Sel

116

3

3

3

4/101/104

Keyboard F6

Sel

117

3

3

3

4/101/104

40

Keyboard F7

Sel

118

3

3

3

4/101/104

41

Keyboard F8

Sel

119

3

3

3

4/101/104

42

Keyboard F9

Sel

120

3

3

3

4/101/104

43

Keyboard F10

Sel

121

3

3

3

4/101/104

44

Keyboard F11

Sel

122

3

3

3

4/101/104

45

Keyboard F12

Sel

123

3

3

3

4/101/104

46

Keyboard PrintScreen7

Sel

124

3

3

3

4/101/104

47

Keyboard Scroll Lock6

Sel

125

3

3

3

4/101/104

48

Keyboard Pause

7

Sel

126

3

3

3

4/101/104

49

Keyboard Insert7

Sel

75

3

3

3

4/101/104

4A

Keyboard Home

Sel

80

3

3

3

4/101/104

4B

Keyboard PageUp7

Sel

85

3

3

3

4/101/104

4C

Keyboard Delete Forward

Sel

76

3

3

3

4/101/104

4D

Keyboard End7

Sel

81

3

3

3

4/101/104

4E

Keyboard PageDown

Sel

86

3

3

3

4/101/104

4F

Keyboard RightArrow7

Sel

89

3

3

3

4/101/104

50

Keyboard LeftArrow

Sel

79

3

3

3

4/101/104

51

Keyboard DownArrow7

Sel

84

3

3

3

4/101/104

52

Keyboard UpArrow7

Sel

83

3

3

3

4/101/104

53

Keypad Num Lock and Clear

Sel

90

3

3

3

4/101/104

54

Keypad /7

Sel

95

3

3

3

4/101/104

55

Keypad *

Sel

100

3

3

3

4/101/104

56

Keypad -

Sel

105

3

3

3

4/101/104

57

Keypad +

Sel

106

3

3

3

4/101/104

58

Keypad ENTER

Sel

108

3

3

3

4/101/104

59

Keypad 1 and End

Sel

93

3

3

3

4/101/104

5A

Keypad 2 and Down Arrow

Sel

98

3

3

3

4/101/104

5B

Keypad 3 and PageDn

Sel

103

3

3

3

4/101/104

5C

Keypad 4 and Left Arrow

Sel

92

3

3

3

4/101/104

5D

Keypad 5

Sel

97

3

3

3

4/101/104

5E

Keypad 6 and Right Arrow

Sel

102

3

3

3

4/101/104

5F

Keypad 7 and Home

Sel

91

3

3

3

4/101/104

60

Keypad 8 and Up Arrow

Sel

96

3

3

3

4/101/104

61

Keypad 9 and PageUp

Sel

101

3

3

3

4/101/104

62

Keypad 0 and Insert

Sel

99

3

3

3

4/101/104

7

7,8

7

7

3

6

84

Boot

Usage ID

Usage Name

Usage Type

AT-101

PC-AT

Mac

Unix

63

Keypad . and Delete

64

Sel

104

3

3

3

4/101/104

Keyboard Non-US \and |9,10

Sel

45

3

3

3

4/101/104

65

Keyboard Application11

Sel

129

3

3

104

66

Keyboard Power

Sel

3

67

Keypad =

Sel

3

68

Keyboard F13

Sel

3

69

Keyboard F14

Sel

3

6A

Keyboard F15

Sel

3

6B

Keyboard F16

Sel

6C

Keyboard F17

Sel

6D

Keyboard F18

Sel

6E

Keyboard F19

Sel

6F

Keyboard F20

Sel

70

Keyboard F21

Sel

71

Keyboard F22

Sel

72

Keyboard F23

Sel

73

Keyboard F24

Sel

74

Keyboard Execute

Sel

3

75

Keyboard Help

Sel

3

76

Keyboard Menu

Sel

3

77

Keyboard Select

Sel

3

78

Keyboard Stop

Sel

3

79

Keyboard Again

Sel

3

7A

Keyboard Undo

Sel

3

7B

Keyboard Cut

Sel

3

7C

Keyboard Copy

Sel

3

7D

Keyboard Paste

Sel

3

7E

Keyboard Find

Sel

3

7F

Keyboard Mute

Sel

3

80

Keyboard Volume Up

Sel

3

81

Keyboard Volume Down

1

3

Sel

3

82

12

Keyboard Locking Caps Lock

Sel

3

83

Keyboard Locking Num Lock12

Sel

3

84

Keyboard Locking Scroll Lock

Sel

3

85

Keypad Comma

Sel

86

Keypad Equal Sign14

87

12

13

107

Sel

Keyboard International1

15,16

Sel

88

Keyboard International2

17

Sel

89

Keyboard International318

Sel

8A

Keyboard International4

Sel

19

3
56

85

Boot

Usage ID

Usage Name

Usage Type

8B

Keyboard International5

20

Sel

8C

Keyboard International621

Sel

8D

Keyboard International722

Sel

8E

Keyboard International8

23

Sel

8F

Keyboard International9

23

Sel

90

Keyboard LANG124

Sel

91

Keyboard LANG2

25

Sel

92

Keyboard LANG3

26

Sel

93

Keyboard LANG427

Sel

94

Keyboard LANG5

28

Sel

95

Keyboard LANG6

29

Sel

96

Keyboard LANG729

Sel

97

Keyboard LANG8

29

Sel

98

Keyboard LANG9

29

Sel

99

Keyboard Alternate Erase30

9A

Keyboard SysReq/Attention

9B

Keyboard Cancel

Sel

9C

Keyboard Clear

Sel

9D

Keyboard Prior

Sel

9E

Keyboard Return

Sel

9F

Keyboard Separator

Sel

A0

Keyboard Out

Sel

A1

Keyboard Oper

Sel

A2

Keyboard Clear/Again

Sel

A3

Keyboard CrSel/Props

Sel

A4

Keyboard ExSel

Sel

A5-AF
B0

Reserved
Keypad 00

Sel

B1

Keypad 000

Sel

B2

Thousands Separator31

Sel

B3

Decimal Separator31

Sel

B4

Currency Unit

Sel

B5

Currency Sub-unit32

Sel

B6

Keypad (Sel

B7

Keypad )Sel

B8

Keypad {Sel

B9Keypad }SelBA

Keypad Tab

Sel

BB

Keypad Backspace

Sel

32

Sel
7

Sel

86

AT-101

PC-AT

Mac

Unix

Boot

Usage ID

Usage Name

Usage Type

AT-101

PC-AT

Mac

Unix

BC

Keypad A

Sel

BD

Keypad B

SelBE

Keypad C

Sel

BF

Keypad D

Sel

C0

Keypad E

Sel

C1

Keypad F

Sel

C2

Keypad XOR

Sel

C3

Keypad∧Sel

C4

Keypad %Sel

C5

Keypad <Sel

C6

Keypad >Sel

C7

Keypad &Sel

C8

Keypad &&Sel

C9Keypad |Sel

CAKeypad ||Sel

CB

Keypad :Sel

CC

Keypad #SelCD

Keypad Space

Sel

CE

Keypad @Sel

CFKeypad !

Sel

D0

Keypad Memory Store

Sel

D1

Keypad Memory Recall

Sel

D2

Keypad Memory Clear

Sel

D3

Keypad Memory Add

Sel

D4

Keypad Memory Subtract

Sel

D5

Keypad Memory Multiply

Sel

D6

Keypad Memory Divide

Sel

D7

Keypad +/-

Sel

D8

Keypad Clear

Sel

D9

Keypad Clear Entry

Sel

DA

Keypad Binary

Sel

DB

Keypad Octal

Sel

DC

Keypad Decimal

Sel

DD

Keypad Hexadecimal

Sel

DE-DF
E0

Reserved
Keyboard LeftControl

E1

DV

58

3

3

3

4/101/104

Keyboard LeftShift

DV

44

3

3

3

4/101/104

E2

Keyboard LeftAlt

DV

60

3

3

3

4/101/104

E3

Keyboard Left GUI11,33

DV

127

3

3

3

104

E4

Keyboard RightControl

DV

64

3

3

3

101/104

87

Boot

Usage ID

Usage Name

Usage Type

AT-101

PC-AT

Mac

Unix

E5

Keyboard RightShift

E6

Boot

DV

57

3

3

3

4/101/104

Keyboard RightAlt

DV

62

3

3

3

101/104

E7

Keyboard Right GUI11,34

DV

128

3

3

3

104

E8-FFFF

Reserved

1 Reserved for typical keyboard status or keyboard errors. Sent as a member of the keyboard array. Not a physical key.
2 Typically remapped for other languages in the host system.

3 Keyboard Enter and Keypad Enter generate different Usage codes.
4 Backs up the cursor one position, deleting a character as it goes.

5 Typical language mappings: US: \|Belg: µ `£French Canadian: <}>Danish: ’* Dutch: <>French: *µ German: # ’Italian: ù§LatinAmerica: } `] Norwegian: , * Spain: }Ç Swedish: , * Swiss: $ £UK: # ~6 Implemented as a non-locking key; sent as member of an array.
7 Usage of keys is not modified by the state of the Control, Alt, Shift or Num Lock keys. That is, a key does not send extra codes tocompensate for the state of any Control, Alt, Shift or Num Lock keys.
8 Deletes one character without changing position.
9 Typical language mappings: Belg: <\>French Canadian: <°>Danish: <\>Dutch: ]|[ French: <>German: <|>Italian: <>LatinAmerica:<>Norwegian: <>Spain: <>Swedish: <|>Swiss: <>UK: \|Brazil: \|10 Typically near the Left-Shift key in AT-102 implementations.
11 Windows key for Windows 95, and Compose.
12 Implemented as a locking key; sent as a toggle button. Available for legacy support; however, most systems should use the non-locking
version of this key.
13 Keypad Comma is the appropriate usage for the Brazilian keypad period (.) key. This represents the closest possible match, and system
software should do the correct mapping based on the current locale setting.
14 Used on AS/400 keyboards.
15 See additional footnotes below
16 Keyboard International1 should be identified via footnote as the appropriate usage for the Brazilian forward-slash (/) and question-mark(?) key. This usage should also be renamed to either "Keyboard Non-US / and ?" or to "Keyboard International1" now that it’s become clearthat it does not only apply to Kanji keyboards anymore.
17 See additional footnotes below
18 See additional footnotes below
19 See additional footnotes below
20 See additional footnotes below
21 See additional footnotes below
22 Toggle Double-Byte/Single-Byte mode.
23 Undefined, available for other Front End Language Processors.
24 Hangul/English toggle key. This usage is used as an input method editor control key on a Korean language keyboard.
25 Hanja conversion key. This usage is used as an input method editor control key on a Korean language keyboard.
26 Defines the Katakana key for Japanese USB word-processing keyboards.
27 Defines the Hiragana key for Japanese USB word-processing keyboards.
28 Defines the Zenkaku/Hankaku key for Japanese USB word-processing keyboards.
29 Reserved for language-specific functions, such as Front End Processors and Input Method Editors.
30 Example, Erase-Eaze™ key.
31 The symbol displayed will depend on the current locale settings of the operating system. For example, the US thousands separator would
be a comma, and the decimal separator would be a period.
32 The symbol displayed will depend on the current locale settings of the operating system. For example the US currency unit would be $and the sub-unit would be ¢.
33 Windowing environment key, examples are Microsoft Left Win key, Mac Left Apple key, Sun Left Meta key
34 Windowing environment key, examples are Microsoft®RIGHT WIN key, Macintosh®RIGHT APPLE key, Sun®RIGHT META key.

88

Note

AT-10415

No Function

DOS/V-109 (suggested)

PC98 (suggested)

ろ

ろ
カタカナ
17

No Function

18

No Function

ひら
がな

かな

¥
¥
前候補

19

No Function

XFER
変換

20

No Function

21

No Function

無変換

NFER

,

No Function

(カソマ)
89

11

LED Page (0x08)

An LED or indicator is implemented as an On/Off Control (OOC) using the Single button toggle mode, where a value of
1 will turn on the indicator, and a value of 0 will turn it off. The exceptions are described below.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02

Num Lock
Caps Lock

OOC
OOC

11.1
11.1

03
04

Scroll Lock
Compose

OOC
OOC

11.1
11.1

05
06
07
08
09
0A
0B

Kana
Power
Shift
Do Not Disturb
Mute
Tone Enable
High Cut Filter

OOC
OOC
OOC
OOC
OOC
OOC
OOC

11.1
11.6
11.1
11.2
11.3
11.3
11.3

0C
0D

Low Cut Filter
Equalizer Enable

OOC
OOC

11.3
11.3

0E
0F
10

Sound Field On
Surround On
Repeat

OOC
OOC
OOC

11.3
11.3
11.3

11
12

StereoSampling Rate Detect

OOC
OOC

11.3
11.3

13

Spinning

OOC

11.4

14
15
16

CAV
CLV
Recording Format Detect

OOC
OOC
OOC

11.3
11.3
11.4

17
18

Off-Hook
Ring

OOC
OOC

11.2
11.2

19

Message Waiting

OOC

11.2

1A
1B

Data Mode
Battery Operation

OOC
OOC

11.2
11.6

1C

Battery OK

OOC

11.6

1D

Battery Low

OOC

11.6

1E

Speaker

OOC

11.2

1F
20
21

Head Set
Hold
Microphone

OOC
OOC
OOC

11.2
11.2
11.2

22

Coverage

OOC

11.2

23

Night Mode

OOC

11.2

24
25

Send Calls
Call Pickup

OOC
OOC

11.2
11.2

90

26
27

ConferenceStand-by

OOC
OOC

11.2
11.6

28
29
2A
2B
2C

Camera On
Camera Off
On-Line
Off-Line
Busy

OOC
OOC
OOC
OOC
OOC

11.3
11.3
11.6
11.6
11.6

2D

Ready

OOC

11.6

2E

Paper-Out

OOC

11.5

2F

Paper-Jam

OOC

11.5

30
31
32
33

RemoteForward
Reverse
Stop

OOC
OOC
OOC
OOC

11.6
11.4
11.4
11.4

34
35
36

RewindFast Forward
Play

OOC
OOC
OOC

11.4
11.4
11.4

37
38
39
3A

Pause
RecordError
Usage Selected Indicator

OOC
OOC
OOC
US

11.4
11.4
11.6
11.6

3B

Usage In Use Indicator

US

11.6

3C

Usage Multi Mode Indicator

UM

11.6

3D
3E
3F
40
41
42
43
44
45
46
47

Indicator On
Indicator Flash
Indicator Slow Blink
Indicator Fast Blink
Indicator Off
Flash On Time
Slow Blink On Time
Slow Blink Off Time
Fast Blink On Time
Fast Blink Off Time
Usage Indicator Color

Sel
Sel
Sel
Sel
Sel
DV
DV
DV
DV
DV
UM

11.6
11.6
11.6
11.6
11.6
11.6
11.6
11.6
11.6
11.6
11.6

48
49
4A
4B
4C

Indicator Red
Indicator Green
Indicator Amber
Generic Indicator
System Suspend

Sel
Sel
Sel
OOC
OOC

11.6
11.6
11.6
11.6
11.6

4D
4E

External Power Connected
Indicator Blue [6]

OOC
Sel

11.6
11.6

4F

Indicator Orange [6]

Sel

11.6

50

Good Status [6]

OOC

11.6

51

Warning Status [6]

OOC

11.6

91

52

RGB LED [6]

CL

11.7

53

Red LED Channel [6]

DV

11.7

54

Blue LED Channel [6]

DV

11.7

55

Green LED Channel [6]

DV

11.7

56

LED Intensity [6]

DV

11.7

57-5F
60

Reserved
Player Indicator [29]

NAry

11.8

61

Player 1 [29]

Sel

11.8

62

Player 2 [29]

Sel

11.8

63

Player 3 [29]

Sel

11.8

64

Player 4 [29]

Sel

11.8

65

Player 5 [29]

Sel

11.8

66

Player 6 [29]

Sel

11.8

67

Player 7 [29]

Sel

11.8

68

Player 8 [29]

Sel

11.8

69-FFFF

Reserved
Table 11.1: LED Page

Note: The Usage Selected Indicator, Usage In Use Indicator, and Usage Multi Mode Indicator
usages can change the usage type of the usage(s) that they contain.

92

11.1

Keyboard Indicators

Usage Name

Usage Type

Description

Num Lock
Caps Lock

OOC
OOC

Indicates that Number Lock is enabled.
Indicates that Capital Lock is enabled.

Scroll Lock
Compose

OOC
OOC

Indicates that Scroll Lock is enabled.
Indicates that composition mode is enabled.

Kana
Shift

OOC
OOC

Indicates that Kana mode is enabled.
Indicates that the Shift function is enabled.

93

11.2

Telephony Indicators

Usage Name

Usage Type

Description

Do Not Disturb

OOC(Phone) Indicates that the phone is not accepting incoming calls.

Off-Hook

OOC(Phone) Indicates that the handset is off-hook.

Ring

OOC

(Phone) Indicates visually that a phone is ringing.

Message
Waiting

OOC(Phone, answering machine) Indicates that a message has been recorded and has
not yet been heard.

Data Mode

OOC(Phone) Indicates that the phone is in a mode that transfers data (rather thanvoice).

Speaker

OOC

Head Set

OOC(Phone) Indicates that the phone is using the speaker/microphone instead of ahandset or headset.
(Phone) Indicates that the phone is using the headset instead of a handset or
speaker/microphone.

Hold

OOC

(Phone) Indicates that the caller is on hold.

Microphone

OOC(Phone) Indicates that the microphone has been muted.

Coverage

OOC(Phone) Indicates that incoming calls are forwarded to a covering station.

Night Mode

OOC

(Phone) Indicates that the phone is in after-hours mode.

Send Calls

OOC(Phone) Indicates that incoming calls are forwarded to another station.

Call Pickup

OOC(Phone) Indicates that a call in the user’s pickup group has been accepted. Pickup
groups associate phones in an area. They allow a ringing phone to be picked up by
any other phone in the group.

Conference

OOC(Phone) Indicates that the phone is in conference call mode.

94

11.3

Consumer Indicators

Usage Name

Usage Type

Description

Mute

OOC

Indicates that amplifier audio output is shut off.

Tone Enable
High Cut Filter

OOC
OOC

Indicates that tone controls are functional.
Indicates that the high cut filter is enabled.

Low Cut Filter
Equalizer
EnableSound Field On

OOC
OOC

Indicates that the low cut filter is enabled.
Indicates that tone shape processing is active.

OOC

Indicates that DSP processing is active.

Surround On

OOC

Indicates that surround channel information is being decoded.

Repeat

OOC

Indicates that the playback device is in repeat mode.

StereoOOC

Indicates that the signal currently being received by the tuner is in stereo.

Sampling Rate
DetectCAV

OOC

Indicates that a digital audio signal has been detected.

OOC

Indicates that the video disc media is in Constant Angular Velocity format.

CLV

OOC

Indicates that the video disc media is in Constant Linear Velocity format.

Camera On

OOC

Indicates that the camera is recording images.

Camera Off

OOC

Indicates that the camera is powered but not recording images.

95

11.4

Media Transport Indicators

Usage Name

Usage Type

Description

Spinning

OOC

Indicates that disc media is up to the speed required for playback/read.

RecordingFormat Detect
Stop

OOC

Indicates that a valid recording format has been detected.

OOC

Indicates that a device’s media transport mechanism has been disengaged.

Forward

OOC

Indicates that a device’s media transport mechanism or a device is in forward mode.

Reverse

OOC

Indicates that a device’s media transport mechanism or a device is in reverse mode.

RewindOOC

Indicates that a device’s media transport mechanism is in rewind mode.

Fast Forward

OOC

Indicates that a device’s media transport mechanism is in fast forward mode.

Play

OOC

Indicates that a device’s media transport mechanism is in playback mode. This
indicator may also be true when a device is recording.

Pause

OOC

Indicates that a device’s media transport mechanism has been paused while playing
back or recording.

96

11.5

Printer Indicators

Usage Name

Usage Type

Description

Paper-Out

OOC

Indicates that the device is out of paper.

Paper-Jam

OOC

Indicates that a paper jam has occurred in the device and operator intervention isrequired.

97

11.6

General Device Indicators

Usage Name

Usage Type

Description

Power

OOC

Indicates that the device is powered.

Stand-by

OOC

Indicates that the device is in standby mode.

On-Line
Off-Line
Busy

OOC
OOC
OOC

Indicates that the device is online.
Indicates that the device is offline.
Indicates that the device is busy executing operations.

Ready

OOC

Indicates that the device is ready to execute operations.

Remote

OOC

Indicates that the device is being controlled remotely.

Error
Battery Operation

OOC
OOC

Indicates that an error has occurred on the device.
Indicates that the device is currently battery powered.

Battery OK

OOC

Indicates that the battery is in a nominal charge state.

Battery Low

OOC

Indicates that the battery is in a low charge state.

Usage Selected Indicator

US

This collection allows the usages that it contains to be associated witha visual output (an LED) that indicates whether a control identified
by the usage is selected. Usage Selected Indicator is a 1-bit field
where 1 is selected and 0 is not selected. All usages found in thiscollection will be treated as On/Off Controls (OOC).

Usage In Use Indicator

US

This collection allows the usages that it contains to be associated witha visual output (an LED) that indicates whether a control identified
by the usage is in use. Usage In Use Indicator is a 1-bit field where
1 is in use and 0 is not in use. All usages found in this collection willbe treated as On/Off Controls (OOC).

Usage Multi Mode
Indicator1

UM

This usage names a logical collection which must be contained inanother collection. The usage attached to the encompassing collectionis then identified as an indicator that supports multiple illumination
modes. In this collection one or more of the following Indicator
selectors will be found: On, Flash, Slow Blink, Fast Blink, and Off.

Indicator On

Sel

Light indicator continuously.

Indicator Flash

Sel

Single, momentary illumination of indicator.

Indicator Slow Blink

Sel

Continuous flashing of the indicator at a slow rate.

Indicator Fast Blink

Sel

Continuous flashing of the indicator at a fast rate.

Indicator Off
Flash On Time
Slow Blink On Time
Slow Blink Off Time
Fast Blink On Time
Fast Blink Off Time

Sel
DV
DV
DV
DV
DV

Turn indicator illumination off.
Duration that the indicator is illuminated in flash mode.
Duration that the indicator is illuminated in slow blink mode.
Duration that the indicator is off in slow blink mode.
Duration that the indicator is illuminated in fast blink mode.
Duration that the indicator is off in fast blink mode.

Usage Indicator Color1

UM

This collection allows the usage that contains it to be an indicatorthat supports multiple colors. All usages found in this collection will betreated as a Selectors (Sel) where one or more of the following Indicator
selectors will be found: Indicator Off, Red, Green, and Amber.

Indicator Red
Indicator Green
Indicator Amber

Sel
Sel
Sel

Indicator color set to Red.
Indicator color set to Green.
Indicator color set to Amber. This is typically implemented byasserting Red and Green simultaneously.

98Generic Indicator

OOC

This usage identifies an indicator that has no permanently assigned
function.
Indicates that the system is in a low power state, but is still powered
and retaining some context.

System Suspend

OOC

External Power Connected

OOC

Indicates that a battery-operated system is connected to external
power.

Indicator Blue
Indicator Orange

Sel
Sel

Indicator color set to Blue.
Indicator color set to Orange.

Good Status

OOC

Indicates that the device is operating within normal parameters.

Warning Status

OOC

Indicates that the device is not operating within normal parameters,
but that the situation has not reached the level of an error (see Error).

1 An indicator can support Multi Mode features and multiple colors simultaneously. To tie these functions together, they can be wrapped ina logical collection where the usage that is attached to the collection defines the purpose of the control.

99

11.7

Multicolor (RGB) LED

Usage Name

Usage Type

Description

RGB LEDCL

A collection of controls for a color mixing (i.e., RGB) LED. An RGB LED
shall contain a red, green, and blue channel usage and may include an intensity
usage.

Red LED Channel

DV

Control setting the intensity of the red channel of a color-mixed LED.

Blue LED Channel

DV

Control setting the intensity of the blue channel of a color-mixed LED.

Green LED Channel

DV

Control setting the intsenity of the green channel of a color-mixed LED.

LED Intensity

DV

Control setting the overall intensity of a color-mixed LED. This control should
be represented as a percentage control using a logical minimum of zero and alogical maximum of 100.

100

11.8

Game Player Indicators

Game Player Indicators allow game controllers to have LEDs embedded that indicate which player the controller is assigned
to. These LED usage definitions enable a more compatible and standardized game controller ecosystem.
Usage Name

Usage Type

Description

Player Indicator

NAry

A collection usage for assigning a player to a game controller. Two or more
Player Selectors shall be included in the Named Array.

Player 1

Sel

Indicates that the game controller is assigned to player 1.

Player 2

Sel

Indicates that the game controller is assigned to player 2.

Player 3

Sel

Indicates that the game controller is assigned to player 3.

Player 4

Sel

Indicates that the game controller is assigned to player 4.

Player 5

Sel

Indicates that the game controller is assigned to player 5.

Player 6

Sel

Indicates that the game controller is assigned to player 6.

Player 7

Sel

Indicates that the game controller is assigned to player 7.

Player 8

Sel

Indicates that the game controller is assigned to player 8.

101

12

Button Page (0x09)

The Button page is the first place an application should look for user selection controls. System graphical user interfaces
typically employ a pointer and a set of hierarchical selectors to select, move and otherwise manipulate their environment.
For these purposes the following assignment of significance can be applied to the Button usages:• Button 1, Primary Button. Used for object selecting, dragging, and double click activation. On MacOS, this is
the only button. Microsoft operating systems call this a logical left button, because it is not necessarily physicallylocated on the left of the pointing device.
• Button 2, Secondary Button. Used by newer graphical user interfaces to browse object properties. Exposed bysystems to applications that typically assign application-specific functionality.
• Button 3, Tertiary Button. Optional control. Exposed to applications, but seldom assigned functionality due toprevalence of two and one button devices.
• Buttons 4 – 255. As the button number increases, its significance as a selector decreases.
In many ways the assignment of button numbers is similar to the assignment of Effort in Physical descriptors. Button
1 would be used to define the button a finger rests on when the hand is in the at rest position, that is, virtually no effort
is required by the user to activate the button. Button values increment as the finger has to stretch to reach a control. See
Section 6.2.3, Physical Descriptors in the HID Specification for methods of further qualifying buttons.
Usage ID

Usage Name

Usage Type00
01

No Button Pressed
Button 1 (primary/trigger)

See Note
See Note

02

Button 2 (secondary)See Note

03

Button 3 (tertiary)

See Note

04
...
FFFF

Button 4...
Button 65535
Table 12.1: Button Page

See Note
See Note

Note: Buttons can be defined as Selectors (Sel), On/Off Controls (OOC), Momentary Controls (MC) or
One-Shot Controls (OSC) depending on the context of their declaration.
When defining buttons as selectors, Usage ID 0 is defined to indicate that no buttons are pressed. When declaring anarray of buttons one can:• Declare all buttons of interest, include the usage No Button Pressed, set the No NULL Position flag, and declare a
Logical Minimum of 0.
• Only declare the buttons of interest, set the NULL State flag, and declare a Logical Minimum of 1. In this casethe 0 value is out of range or NULL , and is interpreted as No Buttons Pressed.
In either case, by convention, a device that returns a value of 0 for an Array should be indicating that no button is pressed.
Radio buttons are an exception to this rule because one button is always valid.

102

13

Ordinal Page (0x0A)

The Ordinal page allows multiple instances of a control or sets of controls to be declared without requiring individual
enumeration in the native usage page. For example, it is not necessary to declare usages of Pointer 1, Pointer 2, and soforth on Section 4 Generic Desktop Page (0x01) . When parsed, the ordinal instance number is, in essence, concatenatedto the usages attached to the encompassing collection to create Pointer 1, Pointer 2, and so forth.
By convention, an Ordinal collection is placed inside the collection for which it is declaring multiple instances.
Instances do not have to be identical.
Usage ID
00
01
02
03
04
...
FFFF

Usage Name

Usage Type

Reserved
Instance 1
UM
Instance 2
UM
Instance 3
UM
Instance 4
UM...
Instance 65535 UM
Table 13.1: Ordinal Page

103

14

Telephony Device Page (0x0B)

This usage page defines the keytop and control usages for telephony devices. Note that in many cases usage definitions areintentionally vague, this is because it is assumed that the controls are interpreted by the telephone software application(PBX). For instance, one software implementation may allow the Park usage to hold the line open while waiting for thetarget number to go on-hook, while another implementation will allow the user to hang up and then ring the user backwhen the target number is available. Often recommendations are made so that users of USB telephones see consistentinterfaces across multiple vendors, minimizing learning curves and frustration when dealing with new or multiple systems.
Indicators on a phone are handled by wrapping them in LED: Usage In Use Indicator and LED: Usage Selected
Indicator usages. For example, a message-indicator LED would be identified by a Telephony: Message usage declared asa Feature or Output in a LED: Usage In Use Indicator collection.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02

Phone
Answering Machine

CA
CA

14.1
14.1

03

Message Controls

CL

14.1

04
05
06

HandsetHeadsetTelephony Key Pad

CL
CL
NAry

14.1
14.1
14.2

07

Programmable Button

NAry

14.2

08-1F
20
21
22
23
24
25
26

Reserved
Hook Switch
Flash
FeatureHold
RedialTransfer
Drop

OOC
MC
OSC
OOC
OSC
OSC
OSC

14.3
14.3
14.3
14.3
14.3
14.3
14.3

27
28
29
2A

Park
Forward Calls
Alternate Function
Line

OOC
OOC
MC
OSC/NAry

14.3
14.3
14.3
14.3

2B

Speaker Phone

OOC

14.3

2C
2D

Conference
Ring Enable

OOC
OOC

14.3
14.3

2E

Ring Select

OSC

14.3

2F
30
31
32-4F
50

Phone MuteCaller ID
Send
Reserved
Speed Dial

OOC
MC
OOC

14.3
14.3
14.3

OSC

14.4

51
52
53

Store Number
Recall Number
Phone Directory

OSC
OSC
OOC

14.4
14.4
14.4

54-6F

Reserved

104

70
71
72
73

Voice Mail
Screen Calls
Do Not Disturb
Message

OOC
OOC
OOC
OSC

14.5
14.5
14.5
14.5

74

Answer On/Off

OOC

14.5

75-8F
90
91
92

Reserved
Inside Dial Tone
Outside Dial Tone
Inside Ring Tone

MC
MC
MC

14.6
14.6
14.6

93

Outside Ring Tone

MC

14.6

94

Priority Ring Tone

MC

14.6

95

Inside Ringback

MC

14.6

96

Priority Ringback

MC

14.6

97

Line Busy Tone

MC

14.6

98
99

Reorder Tone
Call Waiting Tone

MC
MC

14.6
14.6

9A
9B
9C
9D

Confirmation Tone 1
Confirmation Tone 2
Tones Off
Outside Ringback

MC
MC
OOC
MC

14.6
14.6
14.6
14.6

9E

Ringer

OOC

14.6

9F-AF
B0

Reserved
Phone Key 0

Sel

14.2

B1

Phone Key 1

Sel

14.2

B2

Phone Key 2

Sel

14.2

B3

Phone Key 3

Sel

14.2

B4

Phone Key 4

Sel

14.2

B5

Phone Key 5

Sel

14.2

B6

Phone Key 6

Sel

14.2

B7

Phone Key 7

Sel

14.2

B8

Phone Key 8

Sel

14.2

B9

Phone Key 9

Sel

14.2

BA

Phone Key Star

Sel

14.2

BB

Phone Key Pound

Sel

14.2

BC

Phone Key A

Sel

14.2

BD

Phone Key B

Sel

14.2

BE

Phone Key C

Sel

14.2

BF

Phone Key D

Sel

14.2

C0

Phone Call History Key [5]

Sel

14.7

C1

Phone Caller ID Key [5]

Sel

14.7

C2

Phone Settings Key [5]

Sel

14.7

C3-EF

Reserved

105

F0

Host Control [5]

OOC

14.8

F1

Host Available [5]

OOC

14.8

F2

Host Call Active [5]

OOC

14.8

F3

Activate Handset Audio [5]

OOC

14.8

F4

Ring Type [5]

NAry

14.9

F5

Re-dialable Phone Number [5]

OOC

14.9

F6-F7
F8

Reserved
Stop Ring Tone [5]

Sel

14.9

F9

PSTN Ring Tone [5]

Sel

14.9

FA

Host Ring Tone [5]

Sel

14.9

FB

Alert Sound Error [5]

Sel

14.9

FC

Alert Sound Confirm [5]

Sel

14.9

FD

Alert Sound Notification [5]

Sel

14.9

FE

Silent Ring [5]

Sel

14.9

FF-107
108

Reserved
Email Message Waiting [5]

OOC

14.8

109

Voicemail Message Waiting [5]

OOC

14.8

10A

Host Hold [5]

OOC

14.8

10B-10F
110

Reserved
Incoming Call History Count [5]

DV

14.10

111

Outgoing Call History Count [5]

DV

14.10

112

Incoming Call History [5]

CL

14.10

113

Outgoing Call History [5]

CL

14.10

114

Phone Locale [5]

DV

14.8

115-13F
140

Reserved
Phone Time Second [5]

DV

14.9

141

Phone Time Minute [5]

DV

14.9

142

Phone Time Hour [5]

DV

14.9

143

Phone Date Day [5]

DV

14.9

144

Phone Date Month [5]

DV

14.9

145

Phone Date Year [5]

DV

14.9

146

Handset Nickname [5]

DV

14.9

147

Address Book ID [5]

DV

14.9

148-149
14A

Reserved
Call Duration [5]

DV

14.10

14B
14C-FFFF

Dual Mode PhoneCA
Reserved
Table 14.1: Telephony Device Page

106

14.8

14.1

Telephony Devices

Usage Name

Usage Type

Description

Phone

CA

An application-level collection that identifies a device containing telephone controls.

Answering
MachineCA

An application level collection that identifies a device containing primarily voice
mail or answering machine controls.

Dual Mode
Phone

CA

Top level collection of reports for a telephony device which can handle both standard
PSTN phone and host based voice calls.

Message
Controls
HandsetCL

Usages related to voice mail controls.

CL

HeadsetCL

Usages related to the handle-shaped part of a telephone, containing the audio
receiver and transmitter.
Usages related to the telephone headset (headphones and microphone), containing
the audio receiver and transmitter.

107

14.2

Telephony Key Pad Usages

Usage Name

Usage Type

Description

Telephony
Key PadNAry

A collection usage for a standard telephony key pad (dial buttons 1 to 9, *,0, and #). A Telephony Key Pad implies that the keytops are marked with adigit and associated alphabetic characters. This collection can also be used as a
general-purpose 1 to 9 and 0 keypad. The Telephony Keypad collection contains
the Phone Keypad selector usages.
The phone keypad is defined distinctly from a Generic Desktop:Keypad because of
its unique keytop markings. All Phone Keys usages are defined as selectors (Sel).

Phone Key 0

Sel

Phone key digit 0 and Oper.

Phone Key 1

Sel

Phone key digit 1.

Phone Key 2

Sel

Phone key digit 2 and A, B, C.

Phone Key 3

Sel

Phone key digit 3 and D, E, F.

Phone Key 4

Sel

Phone key digit 4 and G, H, I.

Phone Key 5

Sel

Phone key digit 5 and J, K, L.

Phone Key 6

Sel

Phone key digit 6 and M, N, O.

Phone Key 7

Sel

Phone key digit 7 and P, Q (optional), R, S.

Phone Key 8

Sel

Phone key digit 8 and T, U, V.

Phone Key 9

Sel

Phone key digit 9 and W, X, Y, Z (optional).

Phone Key Star

Sel

Phone key Star (*).

Phone Key
Pound
Phone Key A

Sel

Phone key Pound (#).

Sel

Phone key A

Phone Key B

Sel

Phone key B

Phone Key C

Sel

Phone key C

Phone Key D

Sel

Phone key D

Programmable NAry
ButtonProgrammable telephone buttons. This collection contains usages from the Button
usage page. Programmable Buttons 1 through n are represented by Button page
usages 1 through n, respectively.

108

14.3

Call Control

Usage Name

Usage Type

Description

Hook Switch

OOC

Flash

MC

FeatureOSC

Indicates that the handset is Off Hook. Hook Switch is a single bit where 1 is Off
Hook.
Generates a momentary On Hook condition to signal the application. Often used
for alternate line selection.
Selects operating feature.

Hold
RedialTransfer
Drop

OOC
OSC
OSC
OSC

Places current call on hold.
Redials last number dialed.
Transfers call to another extension.
Disconnects the active call.

Park
Forward Calls
Alternate
Function

OOC
OOC
MC

Waits for free line.
Forwards calls to another number.
A modifier key, similar to a Shift key, that provides an alternate function to be
selected on specific buttons. Pressing this button enables the alternate function
mapping. Pressing an alternate function key terminates alternate-function mode.

Line

OSC/NAryLine selection. If the a the phone only supports a single line then the Line usage
is defined as an OSC usage type. If the phone supports multiple lines then theLine usage can be defined as a NAry usage type, where the Line usage is applied
to a Named Array collection. The Named Array collection contains Ordinal usage
selectors, where Ordinal Instances represent the respective line numbers. If a phone
can support multiple lines active at once then the Report Count associated withthe array item can be greater than 1.

Speaker Phone

OOC

Enables speaker phone mode.

Conference
Ring Enable

OOC
OOC

Initiates conference call.
Enables ringer.

Ring SelectOSC

Phone Mute

OOC

Selects ring tone. Typically, the caller presses Ring Select, then presses a dial digit
to select the tone.
Disables audio to the called person. The caller can still hear the incoming audio.

Caller ID

MC

Displays ID of caller.

Send

MC

This indicates that the user has completed entering digits and is ready to begin
routing the phone call. Note that this feature will NOT be used to alternate line
selection as this is the functionality of the flash button. It should not be used to
end the call either, as this is the function of the hook switch.

109

14.4

Speed Dial Controls

Usage Name

Usage Type

Description

Speed Dial

OSC

Initiates speed dial operation.

Store Number

OSC

Saves speed dial number.

Recall Number

OSC

Recalls speed dial number on display.

Phone
Directory

OOC

Displays phone directory.

110

14.5

Voice Mail Controls

Usage Name

Usage Type

Description

Voice Mail

OOC

Enters voice mail application.

Screen Calls

OOC

Disables audio to called person and forwards calls to a voice mail application. The
caller can still hear the incoming audio.

Do Not Disturb

OOC

Disables ring and speaker phone operation and forwards calls to a voice mailapplication.

Message

OSC

Listens to voice message.

Answer On/Off

OOC

Toggles answering machine operation.

111

14.6

Locally Generated Tones

Some telephony devices generate tones locally vs. delivering transmitted tones over the audio input. These tones areplayed to the user via either the handset speaker or the speaker in a speakerphone telephone.
Usage Name

Usage Type

Description

Inside Dial Tone

MCOutside Dial Tone

MCInside Ring Tone

MC

A tone that indicates to the user that the telephone is ready to place aninside call.
A tone that indicates to the user that the telephone is ready to place an
outside call.
An in-house destination telephone is ringing.

Outside Ring ToneMCAn outside destination telephone is ringing.

Priority Ring ToneMC

The tone generated while a destination telephone is ringing as a result of aprogrammable function (like autodial, etc).

Inside RingbackMC

A ringback feature has been activated to an inside line. 1

Outside RingbackMC

A ringback feature has been activated to an outside line.

Priority RingbackMC

A priority ringback feature has been activated.

Line Busy ToneMCThe destination line is currently busy.

Reorder Tone

MC

There are no lines available for the user to place a call.

Call Waiting ToneMCThe user is currently on a line, and another phone call is coming in.

Confirmation Tone 1

MC

A feature the user has requested has been enabled. This tone is generated
while the user is programming the phone.

Confirmation Tone 2MC

A feature the user has requested has been enabled. This tone is generated
while the user is programming the phone.

Tones Off

OOC

Turn all tones off, negating all control values.

RingerOOC

This usage generates the incoming telephone call tone heard by the user while
the phone is On Hook. The tone will remain asserted as long as the control
is true. Software must negate the control to stop the tone. On/off cyclingof the ringer tone is handled by system software, this allows different ringpatterns to be generated by the host.

1 Ringback is a feature that a user could invoke when the destination is busy. Once the destination hangs up its current call, the destination’s
phone places a call to the original user.

112

14.7

Call History Controls

Usage Name

Usage Type

Description

Phone Call History Key

SelShow list of previously dialed phone numbers with associated information(contact list name, time, duration, etc.)

Phone Caller ID Key

SelShow list of received calls with associated information (caller ID name,time, duration, etc.)

Phone Settings Key

SelShow phone settings screen

113

14.8

Host Dual Mode Phone Controls

Usage Name

Usage Type

Description

Host Control
Host Available

OOC
OOC

Host Call Active

OOC

Indicates that the host has control of the device.
Indicates to the device that the host is powered on and running thesoftware which is able to control the device.
Indicates that the host currently has an active voice call.

Activate Handset Audio
Host Hold
Email message waiting

OOC
OOC
OOC

Voicemail Message
Waiting

OOC

Phone Locale

DV

A 4 byte value containing the ISO code for the current locale setting of
the device. Two most significant bytes are the ASCII character bytes for
the ISO 639-1 language code and two least significant bytes are ASCII
character bytes for the ISO 3166-1 country code.

Handset Nickname

DV

Address Book ID

DVA name associated with the phone handset for identification. This is a
Buffered Byte array in the same format as specified for the Alphanumeric
Display usage page and ordering is implied the same was as display data
as defined in Section 20.1.4 Character Transfers .
A unique value stored on the phone to indicate which user of the phone
has their contact list currently stored on the device.

Indicates that the device should activate its audio channel with the host.
Indicates that there is a voice call in the hold state on the host.
When set indicates that there is email on the host for the accountassociated with the device.
When set indicates that there is a voicemail on the host for the accountassociated with the device.

114

14.9

Ring Reports

A ring report can be from the device to indicate to the host that a call is arriving on the PSTN line, or from the host totell the device that a call is arriving on the host. This can also be used by the host to sound notifications on the device.
When a ring report is used to indicate an incoming call, additional information in the report can be caller information(see Section 15.17 Contact List Controls contact list controls in the consumer usage page) or any of the following usages
to provide more detailed information about the call.
Usage Name

Usage Type

Description

Ring TypeNAry

PSTN Ring ToneSel

A selectable indicating to the device to start sounding one of the ringer sounds
defined below.
Ring associated with a call coming in on the public switched telephone
network (PSTN) or standard phone line.

Host Ring Tone

Sel

Ring associated with a voice call coming in on the host.

Alert Sound Error

Sel

Sound associated with an error condition or invalid entry.

Alert Sound Confirm

SelSound associated with a correct or confirmed entry.

Alert Sound
Notification
Silent Ring

Sel

Sound associated with a notification from the host.

Sel

No audible sound.

Stop Ring Tone

Sel

Discontinue any previously playing ring sound.

Re-dialable phone
number

OOC

Indicates that any phone number in the report is an actual phone number
which can be re-dialed and not some other numbers or text which may bepresent on caller ID.

Phone Time Second

DV

Phone Time Minute

DV

Phone Time Hour

DV

Phone Date Day

DV

Logical Minimum of 0, Logical Maximum of 59, the seconds part of the calltime.
Logical Minimum of 0, Logical Maximum of 59, the minutes part of the calltime.
Logical Minimum of 0, Logical Maximum of 23, the hour part of the calltime.
Logical Minimum of 0, Logical Maximum of 31, the day part of the call time.

Phone Date Month

DV

Phone Date YearDV

Logical Minimum of 1, Logical Maximum of 12, the month part of the calltime.
The year part of the call time. If Logical Minimum is greater than 2000, thenthe value is a 4-digit date. If Logical Minimum is 0 then the value is a 2-digit
date meaning one of the years from 2000 to 2099.

115

14.10Call History Reports

A dual mode phone can store call history of received and dialed calls. These can be reported to the host using the following
usages.
Usage Name

Usage Type

Description

Incoming Call History
Count
Outgoing Call History
Count
Incoming Call History

DV

Outgoing Call History

CL

Call Duration

DV

Indicates the number of incoming caller ID history records are currently
stored on the device.
Indicates the number of outgoing call history records are currently stored on
the device.
collection defining an incoming call, which can use the phone time usages
defined above, along with the contact list control usages defined in Section
15.17 Contact List Controls .
A collection defining an outgoing call, which can use the phone time usages
defined above, along with the contact list control usages defined in Section
15.17 Contact List Controls .
The number of seconds that the call lasted. Zero indicates that the call was
not answered.

DV
CL

116

15

Consumer Page (0x0C)

All controls on the Consumer page are application-specific. That is, they affect a specific device, not the system as awhole.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02

Consumer Control
Numeric Key Pad

CA
NAry

15.1
15.2

03

Programmable Buttons

NAry

15.14

04

Microphone

CA

15.1

05

Headphone

CA

15.1

06

Graphic Equalizer

CA

15.1

07-1F
20
21

Reserved
+10
+100

OSC
OSC

15.2
15.2

22

AM/PM

OSC

15.2

23-2F
30
31
32

Reserved
Power
Reset
Sleep

OOC
OSC
OSC

15.3
15.3
15.3

33

Sleep After

OSC

15.3

34

Sleep Mode

RTC

15.3

35
36

Illumination
Function Buttons

OOC
NAry

15.3
15.3

37-3F
40
41
42

Reserved
Menu
Menu Pick
Menu Up

OOC
OSC
OSC

15.4
15.4
15.4

43
44
45

Menu Down
Menu Left
Menu Right

OSC
OSC
OSC

15.4
15.4
15.4

46

Menu Escape

OSC

15.4

47
48
49-5F
60
61

Menu Value Increase
Menu Value Decrease
Reserved
Data On Screen
Closed Caption

OSC
OSC

15.4
15.4

OOC
OOC

15.5
15.5

62

Closed Caption Select

OSC

15.5

63

VCR/TV

OOC

15.5

64
65

Broadcast Mode
Snapshot

OSC
OSC

15.5
15.5

66
67

Still
Picture-in-Picture Toggle [8]

OSC
OSC

15.5
15.5

117

68

Picture-in-Picture Swap [8]

OSC

15.5

69

Red Menu Button [9]

MC

15.4

6A

Green Menu Button [9]

MC

15.4

6B

Blue Menu Button [9]

MC

15.4

6C

Yellow Menu Button [9]

MC

15.4

6D

Aspect [10]

OSC

15.5

6E

3D Mode Select [11]

OSC

15.5

6F

Display Brightness Increment [14]

RTC

15.5

70

Display Brightness Decrement [14]

RTC

15.5

71

Display Brightness [14]

LC

15.5

72

Display Backlight Toggle [14]

OOC

15.5

73

Display Set Brightness to Minimum [14]

OSC

15.5

74

Display Set Brightness to Maximum [14]

OSC

15.5

75

Display Set Auto Brightness [14]

OOC

15.5

76

Camera Access Enabled [41]

OOC

15.21

77

Camera Access Disabled [41]

OOC

15.21

78

Camera Access Toggle [41]

OOC

15.21

79

Keyboard Brightness Increment [42]

OSC

15.22

7A

Keyboard Brightness Decrement [42]

OSC

15.22

7B

Keyboard Backlight Set Level [42]

LC

15.22

7C

Keyboard Backlight OOC [42]

OOC

15.22

7D

Keyboard Backlight Set Minimum [42]

OSC

15.22

7E

Keyboard Backlight Set Maximum [42]

OSC

15.22

7F

Keyboard Backlight Auto [42]

OOC

15.22

80

Selection

NAry

15.6

81

Assign Selection

OSC

15.6

82

Mode Step

OSC

15.6

83
84
85
86
87

Recall Last
Enter Channel
Order Movie
ChannelMedia Selection

OSC
OSC
OSC
LC
NAry

15.6
15.6
15.6
15.6
15.6

88

Media Select Computer

Sel

15.6

89
8A
8B
8C

Media Select TV
Media Select WWWMedia Select DVD
Media Select Telephone

Sel
Sel
Sel
Sel

15.6
15.6
15.6
15.6

8D

Media Select Program Guide

Sel

15.6

8E
8F

Media Select Video Phone
Media Select Games

Sel
Sel

15.6
15.6

118

90

Media Select Messages

Sel

15.6

91
92
93
94

Media Select CDMedia Select VCRMedia Select Tuner
Quit

Sel
Sel
Sel
OSC

15.6
15.6
15.6
15.6

95

Help

OOC

15.6

96

Media Select Tape

Sel

15.6

97
98
99

Media Select Cable
Media Select Satellite
Media Select Security

Sel
Sel
Sel

15.6
15.6
15.6

9A
9B
9C
9D
9E
9F-9F
A0
A1
A2

Media Select HomeMedia Select Call
Channel Increment
Channel Decrement
Media Select SAPReserved
VCR Plus
Once
Daily

Sel
Sel
OSC
OSC
Sel

15.6
15.6
15.6
15.6
15.13

OSC
OSC
OSC

15.6
15.6
15.6

A3

Weekly

OSC

15.6

A4

Monthly

OSC

15.6

A5-AF
B0

Reserved
Play

OOC

15.7

B1
B2
B3
B4
B5
B6
B7

Pause
RecordFast Forward
RewindScan Next Track
Scan Previous Track
Stop

OOC
OOC
OOC
OOC
OSC
OSC
OSC

15.7
15.7
15.7
15.7
15.7
15.7
15.7

B8

Eject

OSC

15.7

B9

Random Play

OOC

15.7

BA

Select Disc

NAry

15.7

BB
BC

Enter Disc
Repeat

MC
OSC

15.7
15.7

BD

Tracking

LC

15.7

BE
BF

Track Normal
Slow Tracking

OSC
LC

15.7
15.7

C0
C1
C2
C3
C4

Frame Forward
Frame BackMark
Clear Mark
Repeat From Mark

RTC
RTC
OSC
OSC
OOC

15.7
15.7
15.8
15.8
15.8

C5

Return To Mark

OSC

15.8

119

C6
C7
C8
C9
CA

Search Mark Forward
Search Mark Backwards
Counter ResetShow Counter
Tracking Increment

OSC
OSC
OSC
OSC
RTC

15.8
15.8
15.8
15.8
15.7

CB

Tracking Decrement

RTC

15.7

CC

Stop/Eject

OSC

15.7

CD

Play/Pause

OSC

15.7

CE

Play/Skip

OSC

15.7

CF
D0

Voice Command
Invoke Capture Interface [35]

OSC
Sel

15.3
15.20

D1

Start or Stop Game Recording [35]

Sel

15.20

D2

Historical Game Capture [35]

Sel

15.20

D3

Capture Game Screenshot [35]

Sel

15.20

D4

Show or Hide Recording Indicator [35]

Sel

15.20

D5

Start or Stop Microphone Capture [35]

Sel

15.20

D6

Start or Stop Camera Capture [35]

Sel

15.20

D7

Start or Stop Game Broadcast [35]

Sel

15.20

D8

Start or Stop Voice Dictation Session [66]

OOC

15.3

D9-DF
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB-EF
F0

Reserved
VolumeBalance
Mute
Bass
TrebleBass Boost
Surround Mode
Loudness
MPX
Volume Increment
Volume Decrement
Reserved
Speed Select

LC
LC
OOC
LC
LC
OOC
OSC
OOC
OOC
RTC
RTC

15.9
15.9
15.9
15.9
15.9
15.9
15.9
15.9
15.9
15.9
15.9

OSC

15.10

F1

Playback Speed

NAry

15.10

F2

Standard Play

Sel

15.10

F3

Long Play

Sel

15.10

F4

Extended Play

Sel

15.10

F5
F6-FF
100
101

Slow
Reserved
Fan Enable
Fan Speed

OSC

15.10

OOC
LC

15.11
15.11

102

Light Enable

OOC

15.11

103

Light Illumination Level

LC

15.11

120

104
105

Climate Control Enable
Room Temperature

OOC
LC

15.11
15.11

106

Security Enable

OOC

15.11

107
108
109

Fire Alarm
Police Alarm
Proximity

OSC
OSC
LC

15.11
15.11
15.11

10A
10B
10C

MotionDuress Alarm
Holdup Alarm

OSC
OSC
OSC

15.11
15.11
15.11

10D
10E-14F
150

Medical Alarm
Reserved
Balance Right

OSC

15.11

RTC

15.9

151
152
153
154
155
156-15F
160

Balance Left
Bass Increment
Bass Decrement
Treble Increment
Treble Decrement
Reserved
Speaker System

RTC
RTC
RTC
RTC
RTC

15.9
15.9
15.9
15.9
15.9

CL

15.12

161
162

Channel Left
Channel Right

CL
CL

15.12
15.12

163
164
165
166
167
168

Channel Center
Channel Front
Channel Center Front
Channel Side
Channel Surround
Channel Low Frequency Enhancement

CL
CL
CL
CL
CL
CL

15.12
15.12
15.12
15.12
15.12
15.12

169

Channel Top

CL

15.12

16A
16B-16F
170
171
172
173
174
175-17F
180

Channel Unknown
Reserved
Sub-channel
Sub-channel Increment
Sub-channel Decrement
Alternate Audio Increment
Alternate Audio Decrement
Reserved
Application Launch Buttons

CL

15.12

LC
OSC
OSC
OSC
OSC

15.13
15.13
15.13
15.13
15.13

NAry

15.15

181

AL Launch Button Configuration Tool

Sel

15.15

182

AL Programmable Button Configuration

Sel

15.15

183

AL Consumer Control Configuration

Sel

15.15

184
185
186

AL Word Processor
AL Text Editor
AL Spreadsheet

Sel
Sel
Sel

15.15
15.15
15.15

187

AL Graphics Editor

Sel

15.15

121

188

AL Presentation App

Sel

15.15

189

AL Database App

Sel

15.15

18A
18B
18C
18D

AL Email Reader
AL Newsreader
AL Voicemail
AL Contacts/Address Book

Sel
Sel
Sel
Sel

15.15
15.15
15.15
15.15

18E

AL Calendar/Schedule

Sel

15.15

18F

AL Task/Project Manager

Sel

15.15

190

AL Log/Journal/Timecard

Sel

15.15

191

AL Checkbook/Finance

Sel

15.15

192
193

AL Calculator
AL A/V Capture/Playback

Sel
Sel

15.15
15.15

194
195

AL Local Machine Browser
AL LAN/WAN Browser

Sel
Sel

15.15
15.15

196
197

AL Internet Browser
AL Remote Networking/ISP Connect

Sel
Sel

15.15
15.15

198
199
19A

AL Network Conference
AL Network Chat
AL Telephony/Dialer

Sel
Sel
Sel

15.15
15.15
15.15

19B

AL Logon

Sel

15.15

19C

AL Logoff

Sel

15.15

19D

AL Logon/Logoff

Sel

15.15

19E

AL Terminal Lock/Screensaver

Sel

15.15

19F
1A0

AL Control Panel
AL Command Line Processor/Run

Sel
Sel

15.15
15.15

1A1

AL Process/Task Manager

Sel

15.15

1A2

AL Select Task/Application

Sel

15.15

1A3

AL Next Task/Application

Sel

15.15

1A4

AL Previous Task/Application

Sel

15.15

1A5

AL Preemptive Halt Task/Application

Sel

15.15

1A6

AL Integrated Help Center

Sel

15.15

1A7
1A8
1A9

AL Documents
AL Thesaurus
AL Dictionary

Sel
Sel
Sel

15.15
15.15
15.15

1AA

AL Desktop

Sel

15.15

1AB

AL Spell Check

Sel

15.15

1AC
1AD
1AE

AL Grammar Check
AL Wireless Status
AL Keyboard Layout

Sel
Sel
Sel

15.15
15.15
15.15

1AF
1B0

AL Virus Protection
AL Encryption

Sel
Sel

15.15
15.15

1B1

AL Screen Saver

Sel

15.15

122

1B2
1B3
1B4
1B5
1B6

AL Alarms
AL Clock
AL File Browser
AL Power Status
AL Image Browser

Sel
Sel
Sel
Sel
Sel

15.15
15.15
15.15
15.15
15.15

1B7
1B8
1B9

AL Audio Browser
AL Movie Browser
AL Digital Rights Manager

Sel
Sel
Sel

15.15
15.15
15.15

1BA

AL Digital Wallet

Sel

15.15

1BB-1BB
1BC

Reserved
AL Instant Messaging

Sel

15.15

1BD

AL OEM Features/ Tips/Tutorial Browser

Sel

15.15

1BE

AL OEM Help

Sel

15.15

1BF

AL Online Community

Sel

15.15

1C0
1C1

AL Entertainment Content Browser
AL Online Shopping Browser

Sel
Sel

15.15
15.15

1C2

AL SmartCard Information/Help

Sel

15.15

1C3

AL Market Monitor/Finance Browser

Sel

15.15

1C4

AL Customized Corporate News Browser

Sel

15.15

1C5

AL Online Activity Browser

Sel

15.15

1C6

AL Research/Search Browser

Sel

15.15

1C7

AL Audio Player

Sel

15.15

1C8

AL Message Status [5]

Sel

15.15

1C9

AL Contact Sync [5]

Sel

15.15

1CA

AL Navigation [64]

Sel

15.15

1CB

AL Context-aware Desktop Assistant [56]

Sel

15.15

1CC-1FF
200

Reserved
Generic GUI Application Controls

NAry

15.16

201
202

AC New
AC Open

Sel
Sel

15.16
15.16

203
204
205
206
207
208
209

AC Close
AC ExitAC Maximize
AC Minimize
AC Save
AC Print
AC Properties

Sel
Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16
15.16

20A-219
21A
21B

Reserved
AC UndoAC Copy

Sel
Sel

15.16
15.16

21C
21D
21E

AC CutAC Paste
AC Select All

Sel
Sel
Sel

15.16
15.16
15.16

123

21F
220

AC FindAC Find and Replace

Sel
Sel

15.16
15.16

221
222
223
224
225
226

AC Search
AC Go To
AC HomeAC Back
AC Forward
AC Stop

Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16

227
228
229
22A
22B

AC Refresh
AC Previous Link
AC Next Link
AC Bookmarks
AC History

Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16

22C

AC Subscriptions

Sel

15.16

22D
22E
22F
230
231
232

AC Zoom In
AC Zoom Out
AC Zoom
AC Full Screen View
AC Normal View
AC View Toggle

Sel
Sel
LC
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16

233

AC Scroll Up

Sel

15.16

234
235
236
237

AC Scroll Down
AC Scroll
AC Pan Left
AC Pan Right

Sel
LC
Sel
Sel

15.16
15.16
15.16
15.16

238
239
23A

AC PanAC New Window
AC Tile Horizontally

LC
Sel
Sel

15.16
15.16
15.16

23B

AC Tile Vertically

Sel

15.16

23C
23D
23E
23F
240
241

AC Format
AC EditAC Bold
AC Italics
AC Underline
AC Strikethrough

Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16

242

AC Subscript

Sel

15.16

243

AC Superscript

Sel

15.16

244

AC All Caps

Sel

15.16

245
246
247

AC Rotate
AC Resize
AC Flip Horizontal

Sel
Sel
Sel

15.16
15.16
15.16

248

AC Flip Vertical

Sel

15.16

249
24A

AC Mirror Horizontal
AC Mirror Vertical

Sel
Sel

15.16
15.16

124

24B
24C
24D
24E

AC Font SelectAC Font Color
AC Font Size
AC Justify Left

Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16

24F

AC Justify Center H

Sel

15.16

250

AC Justify Right

Sel

15.16

251

AC Justify Block H

Sel

15.16

252

AC Justify Top

Sel

15.16

253

AC Justify Center V

Sel

15.16

254

AC Justify Bottom

Sel

15.16

255

AC Justify Block V

Sel

15.16

256
257
258
259

AC Indent Decrease
AC Indent Increase
AC Numbered List
AC Restart Numbering

Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16

25A
25B
25C
25D
25E
25F
260

AC Bulleted List
AC Promote
AC Demote
AC YesAC No
AC Cancel
AC Catalog

Sel
Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16
15.16

261

AC Buy/Checkout

Sel

15.16

262
263

AC Add to Cart
AC Expand

Sel
Sel

15.16
15.16

264

AC Expand All

Sel

15.16

265

AC Collapse

Sel

15.16

266

AC Collapse All

Sel

15.16

267
268

AC Print Preview
AC Paste Special

Sel
Sel

15.16
15.16

269
26A
26B
26C
26D
26E

AC Insert ModeAC Delete
AC Lock
AC Unlock
AC Protect
AC Unprotect

Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16

26F
270
271
272
273
274

AC Attach Comment
AC Delete Comment
AC View Comment
AC Select Word
AC Select Sentence
AC Select Paragraph

Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16

275
276

AC Select Column
AC Select Row

Sel
Sel

15.16
15.16

125

277
278

AC Select Table
AC Select Object

Sel
Sel

15.16
15.16

279

AC Redo/Repeat

Sel

15.16

27A
27B

AC SortAC Sort Ascending

Sel
Sel

15.16
15.16

27C

AC Sort Descending

Sel

15.16

27D
27E
27F
280
281
282
283
284
285
286

AC Filter
AC Set Clock
AC View Clock
AC Select Time Zone
AC Edit Time Zones
AC Set AlarmAC Clear Alarm
AC Snooze Alarm
AC Reset Alarm
AC Synchronize

Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16
15.16
15.16
15.16
15.16

287

AC Send/Receive

Sel

15.16

288
289

AC Send To
AC Reply

Sel
Sel

15.16
15.16

28A

AC Reply All

Sel

15.16

28B

AC Forward Msg

Sel

15.16

28C
28D
28E

AC SendAC Attach FileAC Upload

Sel
Sel
Sel

15.16
15.16
15.16

28F

AC Download (Save Target As)

Sel

15.16

290
291
292
293
294
295

AC Set Borders
AC Insert Row
AC Insert Column
AC Insert FileAC Insert Picture
AC Insert Object

Sel
Sel
Sel
Sel
Sel
Sel

15.16
15.16
15.16
15.16
15.16
15.16

296

AC Insert Symbol

Sel

15.16

297
298
299

AC Save and CloseAC Rename
AC Merge

Sel
Sel
Sel

15.16
15.16
15.16

29A

AC Split

Sel

15.16

29B

AC Disribute Horizontally

Sel

15.16

29C

AC Distribute Vertically

Sel

15.16

29D

AC Next Keyboard Layout Select [28]

Sel

15.16

29E

AC Navigation Guidance [44]

Sel

15.16

29F

AC Desktop Show All Windows [46]

Sel

15.16

2A0

AC Soft Key Left [5]

Sel

15.16

2A1

AC Soft Key Right [5]

Sel

15.16

126

2A2

AC Desktop Show All Applications [64]

Sel

15.16

2A3-2AF
2B0

Reserved
AC Idle Keep Alive [5]

Sel

15.16

2B1-2BF
2C0

Reserved
Extended Keyboard Attributes Collection [15]

CL

15.18

2C1

Keyboard Form Factor [15]

SV

15.18

2C2

Keyboard Key Type [15]

SV

15.18

2C3

Keyboard Physical Layout [15]

SV

15.18

2C4

Vendor-Specific Keyboard Physical Layout [15]

SV

15.18

2C5

Keyboard IETF Language Tag Index [15]

SV

15.18

2C6

Implemented Keyboard Input Assist Controls [15]

SV

15.18

2C7

Keyboard Input Assist Previous [15]

Sel

15.19

2C8

Keyboard Input Assist Next [15]

Sel

15.19

2C9

Keyboard Input Assist Previous Group [15]

Sel

15.19

2CA

Keyboard Input Assist Next Group [15]

Sel

15.19

2CB

Keyboard Input Assist Accept [15]

Sel

15.19

2CC

Keyboard Input Assist Cancel [15]

Sel

15.19

2CD-2CF
2D0

Reserved
Privacy Screen Toggle [62]

OOC

15.23

2D1

Privacy Screen Level Decrement [62]

RTC

15.23

2D2

Privacy Screen Level Increment [62]

RTC

15.23

2D3

Privacy Screen Level Minimum [62]

OSC

15.23

2D4

Privacy Screen Level Maximum [62]

OSC

15.23

2D5-4FF
500

Reserved
Contact Edited [5]

OOC

15.17

501

Contact Added [5]

OOC

15.17

502

Contact Record Active [5]

OOC

15.17

503

Contact Index [5]

DV

15.17

504

Contact Nickname [5]

DV

15.17

505

Contact First Name [5]

DV

15.17

506

Contact Last Name [5]

DV

15.17

507

Contact Full Name [5]

DV

15.17

508

Contact Phone Number Personal [5]

DV

15.17

509

Contact Phone Number Business [5]

DV

15.17

50A

Contact Phone Number Mobile [5]

DV

15.17

50B

Contact Phone Number Pager [5]

DV

15.17

50C

Contact Phone Number Fax [5]

DV

15.17

50D

Contact Phone Number Other [5]

DV

15.17

50E

Contact Email Personal [5]

DV

15.17

127

50F

Contact Email Business [5]

DV

15.17

510

Contact Email Other [5]

DV

15.17

511

Contact Email Main [5]

DV

15.17

512

Contact Speed Dial Number [5]

DV

15.17

513

Contact Status Flag [5]

DV

15.17

514

Contact Misc. [5]

DV

15.17

515-FFFF

Reserved
Table 15.1: Consumer Page

128

15.1

Generic Consumer Control Device

Usage Name

Usage Type

Description

Consumer
Control
Microphone

CA

General consumer control device.

CA

Names a collection that contains usages related to an audio receiver device forrecording or amplifying sounds. This usage can also be used to name a logicalcollection (CL) if the microphone controls are part of another device.

HeadphoneCA

Names a collection that contains usages related to an audio output device forplaying back sounds. This usage can also be used to name a logical collection(CL) if the headphone controls are part of another device.

Graphic
Equalizer

CA

This collection contains Ordinal usages. An Ordinal usage is declared for eachfrequency band gain control supported by the Graphic Equalizer. The value
associate with the ordinal determines the gain of an individual band in an graphic
equalizer. The gain varies from 0 to 100% of the total gain supported by theband. This usage requires the definition of a Usage Descriptor to identify thecenter frequency and Q of the filter associated with the band. This usage canalso be used to name a logical collection (CL) if the equalizer controls are partof another device.

Part

Offset (Bytes)

Size (Bytes)

Value

Description

bLength0

1

NumberSize of this descriptor in bytes(0x0A)

bDescriptorType1

1

Constant

String descriptor type (0x03)

fCenterFreq

2

4

IEEE 32-bit floating-point

Defines the center frequency ofthe equalizer band in Hertz

fQ

6

4

IEEE 32-bit floating-point

Defines the Q factor of theequalizer band.

Table 15.3: Graphic Equalizer Data Descriptor

Both the Center Frequency and the Q members of the Graphic Equalizer Usage Descriptor are defined in standard IEEE
32-bit floating-point format.

129

15.2

Numeric Key Pad

Usage Name

Usage Type

Description

Numeric Key
Pad

NAry

A collection usage for a generic numeric keypad. On a consumer device these
are commonly used for channel selection. Usages for digits can be found on the
Button page where numeric values starting with 0 are assigned to Button 1,
numeric value 1 to Button 2, and so on.

+10

OSC

Increments channel by 10.

+100

OSC

Increments channel by 100.

AM/PM

OSC

Toggles between AM and PM for time entry.

130

15.3

General Controls

Usage Name

Usage Type

Description

Power

OOC

Controls the application-specific power state. For global power control, see Section
4.5 System Controls .

Reset

OSC

Resets the device. All volatile settings revert to the defaults.

Sleep

OSC

Initiates low power state on application-specific device now.

Sleep After

OSC

Sets inactivity timeout to a value. The Sleep After button will be followed with thetimeout value in minutes entered on a numeric keypad.

Sleep Mode

RTC

Cycle through available sleep delays, such as no sleeping, 5 minutes, 10 minutes, 30
minutes, etc... The last selected mode will be enabled.

Illumination

OOC

Toggles illumination of consumer control’s buttons and controls on/off.

Function
ButtonsNAry

A collection usage for generic function buttons. On a consumer device, these arecommonly used for user-assigned functions. Usages for function buttons can befound on Section 12 Button Page (0x09) where Function Button 1 is assigned to
Button 1, Function Button 2 to Button 2, and so on.

Voice
CommandStart/Stop
Voice Dictation
Session

OSC

Initiates listening for Voice Command.

OOC

Starts or stops a voice dictation session. If a session is not in progress, activation
will start a new dictation session. If a session is in progress, activation will stop thesession.

131

15.4

Menu Controls

Usage Name

Usage Type

Description

Menu

OOC

Menu Pick
Menu Up

OSC
OSC

Initiates on-device-display main menu. Sets a mode in which the other menu
controls are active. In this mode, a subsequent menu press will cancel themode.
Picks an item from an on-screen menu.
Moves the selection up in a device-displayed menu.

Menu Down

OSC

Moves the selection down in a device-displayed menu.

Menu Left

OSC

Moves the selection left in a device-displayed menu.

Menu Right

OSC

Moves the selection right in a device-displayed menu.

Menu Escape

OSC

Backs up a level in the on-screen menu system.

Menu Value Increase

OSC

Increments the value of the currently selected menu item. For example, afterusing a menu to select a volume control, the user can modify the volume level
using this control.

Menu Value Decrease

OSC

Decrements the value of the currently selected menu item.

Red Menu Button

MC

Red menu button on the remote control is currently pressed.

Green Menu Button

MC

Green menu button on the remote control is currently pressed.

Blue Menu Button

MC

Blue menu button on the remote control is currently pressed.

Yellow Menu Button

MC

Yellow menu button on the remote control is currently pressed.

132

15.5

Display Controls

Usage Name

Usage Type

Description

Data On Screen

OOC

Superimposes state data on the monitor video. Typically, channel
information is displayed.

Closed Caption

OOC

Enables closed-caption display.

Closed Caption SelectOSC

Cycles through closed-caption viewing options.

VCR/TV

OOC

Selects a recording source for VCR.

Broadcast Mode

OSC

Cycles between available broadcast modes, such as Broadcast,
CATV, etc. The last selected mode is enabled.

Snapshot

OSC

Captures the screen or image of the currently selected window.

Still

OSC

Pauses playback in the currently selected window.

Picture-in-Picture Toggle

OSC

Toggles the Picture-in-Picture feature on and off. In typical usage,
if the overlaid picture-in-picture video is not currently visible, thenit becomes visible, and if it is currently visible, then it is madenot visible. Optionally, upon receipt of this control the host device
may cycle through multiple picture-in-picture options. For example
the host may cycle through various positions of the embedded
picture on the screen before cycling back to the state in which
the picture-in-picture image is not visible.

Picture-in-Picture Swap

OSC

Swaps the video sources used for the main and embedded display if
the picture-in-picture feature is currently enabled on the receiving
device. If the picture-in-picture feature is not enabled at the timeof the receipt of this control, no action should result.

AspectOSC

Selects the next available supported aspect ratio option on a device
which outputs or displays video. For example, common aspect ratio
options are 4:3 (standard definition), 16:9 (often used to stretch astandard definition source signal to a 16:9 video screen), letter-box
and anamorphic widescreen.The order in which the aspect ratios
are selected is implementation specific.

3D Mode SelectOSC

Selects the next available supported 3D mode on a TV or otherdevice which displays or outputs 3D video. For example, common
modes are 3D disabled, sequential frame, left-over-right format andside-by-side format. The supported modes and the order in which
the device cycles through these modes is implementation specific.

Display Brightness Increment

RTC

Brightens the display by one unit, if possible.

Display Brightness Decrement

RTC

Dims the display by one unit, until off.

Display Brightness

LC

Sets brightness to a value between logical min and max. Logical
min is off, logical max is brightest.

Display Backlight Toggle

OOC

Toggles the backlight state between off and last known brightness
or default brightness if last known is unavailable.

Display Set Brightness to
Minimum
Display Set Brightness to
Maximum
Display Set Auto Brightness

OSC

Dims the display to minimum brightness (not off).

OSC

Brightens the display to maximum brightness.

OOC

Permits the display to automatically control brightness.

133

15.6

Selection Controls

Usage Name

Usage Type

Description

Selection

NAry

A collection usage for a number of discrete selections. On a consumer
device, these are commonly used for favorite selections. Usages forthe selections can be found on the Button page where the choices are
assigned to Button 1 and so on.

Assign Selection

OSC

This button works in conjunction with the Selection usage. To assign
the current channel or mode to a selection button, the user presses theAssign Selection button followed by a button in the Selection named
array.

Mode Step

OSC

Steps through devices (TV, VCR, cable) in a multi-mode remote.

Recall Last
Enter Channel

OSC
OSC

Returns to the last selected channel or mode.
Interprets the previous number entry as channel information.

Order Movie

OSC

Requests pay-per-view entertainment.

ChannelLC

Channel selection control where the range of possible values is equal
to the number of channels supported by the device.

Channel Increment

OSC

Channel DecrementOSC

VCR Plus

OSC

C.hannel control where each activation of the control increments thecurrent channel selection to the next available channel.
Channel control where each activation of the control decrements thecurrent channel selection to the next available channel.
Initiates (and optionally terminates) VCR Plus code entry mode.

Once 1OSC

Performs the operation once.

Daily

OSC

Performs the operation once a day.

WeeklyOSC

Performs the operation once a week.

Monthly

OSC

Performs the operation once a month.

Media Selection

NAry

Identifies the media source to be manipulated or displayed. This
collection will contain one of the following Media Select usages.

Media Select Computer

Sel

Selects the computer display.

Media Select TV

Sel

Selects the television display.

Media Select WWWMedia Select DVD
Media Select Telephone

Sel
Sel
Sel

Selects World Wide Web access.
Selects the DVD drive.
Selects telephone mode.

Media Select Program Guide

Sel

Selects the viewing guide.

Media Select Video Phone

Sel

Selects videophone mode.

Media Select Games

Sel

Selects gaming mode.

Media Select Messages

Sel

Selects message mode.

Media Select CDMedia Select VCRMedia Select TunerMedia Select Tape

Sel
Sel
Sel
Sel

Selects the CD drive.
Selects the VCR.
Selects the tuner.
Select the audio tape.

Media Select Cable
Media Select Satellite
Media Select Security

Sel
Sel
Sel

Selects the cable receiver.
Selects the satellite receiver.
Selects the security status display.

1 The controls Once, Daily, Weekly, and Monthly are typically used for programming record operations.

134

Media Select Home

Sel

Selects the home system status display.

Media Select Call

Sel

Selects the telephone call status display.

Quit

OSC

Exits the current mode.

Help

OOC

Displays the help screen.

135

15.7

Transport Controls

Usage Name

Usage Type

Description

Play

OOC

Begins streaming linear media.

Pause

OOC

Stops streaming linear media.

RecordOOC

Initiates transferring input data to media.

Fast Forward
RewindScan Next
Track
Scan Previous
Track
Stop

OOC
OOC
OSC

Initiates fast forward scan of linear media.
Initiates fast reverse scan of linear media.
Moves to the next chapter or track boundary.

OSC

Moves to the previous chapter or track boundary.

OSC

Halts scanning, streaming, or recording linear media.

Eject

OSC

Removes media from the player.

Stop/Eject

OSC

If linear media is scanning, streaming, or recording, stops the media stream. If
linear media is halted, removes the media from the player.

Play/Pause

OSC

If linear media is scanning, streaming, or recording, momentarily stops the media
stream. If linear media is paused, resumes streaming.

Play/Skip

OSC

Random PlayOOC

If linear media is halted, begins streaming. If linear media is already streaming,
advances to the next channel.
Random selection of tracks.

RepeatOSC

Repeat selection of tracks.

Select DiscNAry

Attached to a collection that defines the selection of one of many disks. The allowed
disk numbers are enumerated with the declaration of ordinals in the Select Disc
named array.

Enter DiscMCThis button works in conjunction with the Numeric Key Pad usage. To selecta disk, the user presses the Enter Disc button followed by the entry of the desired
disc number on the numeric key pad.

Tracking

LC

Adjusts media tracking.

Tracking
Increment

RTC

Asserting this control increments the current value of media tracking until the
maximum value is reached. Typically implemented as a single button.

Tracking
Decrement

RTC

Asserting this control decrements the current value of media tracking until theminimum value is reached. Typically implemented as a single button.

Track Normal

OSC

Sets media tracking to default or automatic value.

Slow Tracking

LC

Adjusts media slow tracking.

Frame Forward
Frame Back

RTC
RTC

Moves forward one video frame.
Moves back one video frame.

136

15.8

Search Controls

Search controls either place a physical flag, index or mark on the magnetic media, or use the position or frame counter toflag points of interest. The search controls allow identifying and moving between these points of interest.
Usage Name

Usage Type

Description

Mark

OSC

Marks a reference point on the media. Synonymous with the counter
memory function found on some transport devices.

Clear MarkOSC

Removes a marked reference point from the media.

Repeat From MarkOOC

Marks the current position as the end of the block and repeat-plays theblock starting from the marked beginning of the block.

Return To MarkOSC

Positions at the last detected mark and plays.

Search Mark Forward
Search Mark Backwards
Counter Reset

OSC
OSC
OSC

Searches forward for a mark.
Searches backward for a mark.
Resets the time, position, or frame counter.

Show Counter

OSC

Toggles between the position counter and the time display.

137

15.9

Audio Controls

15.9.1

VolumeAn application should check the Volume, Volume Increment and Volume Decrement usages when determining whether adevice supports volume controls.
Usage Name

Usage Type

Description

VolumeVolume Increment

LC
RTC

Audio volume control.
Asserting this control increments the current value of audio volume until the
maximum value is reached. It is typically implemented as a single button.

Volume Decrement

RTC

Asserting this control decrements the current value of audio volume until theminimum value is reached. It is typically implemented as a single button.

Mute

OOC

Audio mute control. Sets the audio output level to the minimum value without
affecting the current volume level. When Mute is disabled, the previous audio
level will be restored.

15.9.2

Balance

An application should check the Balance, Balance Right and Balance Left usages when determining whether a device
supports balance controls.
Usage Name

Usage Type

Description

Balance
Balance RightLC
RTC

Audio balance control.
Asserting this control adjusts the audio output towards the right channel until the
maximum value is reached. It is typically implemented as a single button.

Balance Left

RTC

Asserting this control adjusts the audio to the left channel until the maximum value
is reached. It is typically implemented as a single button.

15.9.3Bass

An application should check the Bass, Bass Increment and Bass Decrement usages when determining whether a device
supports bass controls.
Usage Name

Usage Type

Description

Bass
Bass Increment

LC
RTC

Audio bass control.
Asserting this control increments the current value of the audio bass control until
the maximum value is reached. It is typically implemented as a single button.

Bass Decrement

RTC

Asserting this control decrements the current value of the audio bass control until
the minimum value is reached. It is typically implemented as a single button.

Bass Boost

OOC

Enables audio bass boost.

138

15.9.4

TrebleAn application should check the Treble, Treble Increment and Treble Decrement usages when determining whether adevice supports treble controls.
Usage Name

Usage Type

Description

TrebleTrebleIncrement

LC
RTC

Audio treble control.
Asserting this control increments the current value of the audio treble control until
the maximum value is reached. It is typically implemented as a single button.

TrebleDecrement

RTC

Asserting this control decrements the current value of the audio treble control until
the minimum value is reached. It is typically implemented as a single button.

Usage Name

Usage Type

Description

Surround Mode

OSC

Steps through surround mode options.

Loudness

OOC

Applies boost to audio bass and treble.

MPX

OOC

Enables stereo multiplexer.

15.9.5

Other

139

15.10Speed Controls

Usage Name

Usage Type

Description

Speed SelectOSC

Cycles through media speed options.

Playback
Speed

NAry

A collection of controls that allow adjustment of playback speed (in units relative
to normal playback speed). Contains the selectors Standard, Long, and Extended
Play.

Standard PlaySel

Selects the VCR’s SP recording speed.

Long PlaySel

Selects the VCR’s LP recording speed.

Extended PlaySel

Selects the VCR’s EP recording speed.

Slow

OSC

Enables slow speed transport motion.

14015.11

Home and Security Controls

Usage Name

Usage Type

Description

Fan Enable

OOC

Controls the state of a overhead, furnace, or ventilation fan.

Fan Speed

LC

Adjusts the speed of a overhead, furnace or ventilation fan.

Light Enable

OOC

Controls the state of a light or lamp.

Light Illumination Level

LC

Adjusts the illumination level of a light or lamp.

Climate Control Enable

OOC

Enables or disables a climate control system.

Room Temperature

LC

Adjusts room temperature level.

Security Enable

OOC

Enables or disables a security system.

Fire Alarm
Police Alarm

OSC
OSC

Initiates a fire alarm.
Initiates a police alarm.

ProximityLC

A value indicating proximity to a sensor.

MotionOSC

A value indicating detection of motion.

Duress Alarm

OSC

Initiates a Panic alarm Indicates a forced operation of the alarm controls
under duress. Typically a silent alarm.

Holdup Alarm

OSC

Initiates a Holdup alarm. Typically a silent alarm.

Medical Alarm

OSC

Initiates a Medical alarm.

14115.12

Speaker Channels

USB speaker systems may employ a hierarchy of Channel collections to identify controls that effect individual speakers or
subsets of speakers. The selection of collections also allows the speakers associated with USB audio class spatial locations
to be identified.
If the only function provided by a device is a speaker system, then it will be defined as a Consumer Control at theapplication collection level. The volume, balance, mute, and tone control usages found at the top level represent Master
controls that effect all channels or speaker systems. If more spatial resolution is required then Channel collections can becontained in the top-level collection.
Channel identification assumes the following layout of the speakers.
StereoChannelLeftspeaker

CenterChannelspeaker(mono)

ChannelRightspeaker

ChannelSubwoofer(mono)

ChannelLeftspeaker

ChannelRear

ChannelRightspeaker

Figure 15.1: Audio Channels

15.12.1

Audio Channels

Where• A monophonic system is a 1-channel system that would be represented by volume, mute and tone controls in the
top-level collection.
• Stereo is a 2-channel system. Normally volume, balance, mute and tone controls in the top-level collection would
represent this configuration. However if a device provided individual controls for the right and left channels thenthese controls would be found in their respective Right Channel and Left Channel collections.
• Dolby Surround is a 3-channel system with Right, Left, and Rear Channels. This configuration is very similar to astereo configuration however any controls that only effected the rear speakers would be found in a Surround Channel
collection.
• Dolby Pro-Logic surround is a 4-channel system with Right, Left, Center, and Rear Channels. Similar to Dolby
Surround however any controls that only effected the center speaker would be found in a Center Front Channel
collection.
• Dolby Digital is a 6-channel system with 3 front channels (Right, Left and Center), 2 surround channels (Rear Right
and Rear Right), and a Subwoofer (LFE) Channel. Similar to Dolby Pro-Logic however any controls that only
effected the subwoofer speaker would be found in a Low Frequency Enhancement Channel collection.

142

In both implementations of Dolby Surround and Dolby Pro-Logic the Rear channel is actually a monophonic bandwidth-limited(7 kHz) channel that is often implemented as two separate speakers, right and left. Both speakers receive the same source.
Master or system-wide controls associated with all channel positions will be found in the top-level collection of the consumer
control.
Usage Name

Usage Type

Description

Speaker
SystemCL

This collection is used to define controls that effect all channels of an individual
speaker system if the device contains controls for more than one speaker system.
Note: that the controls defined in the top-level collection will be the truemaster controls, effecting all speaker systems. This collection can contain any of
the following Channel collections.

Channel Left
Channel
Right

CL
CL

A collection of controls associated with the Left channel.
A collection of controls associated with the Right channel.

ChannelCenterChannelFront

CLA collection of controls associated with the Center channel.

CL

A collection of controls associated with the Front channels. To provide more detailon controls, this collection may optionally contain Channel Left, Channel Right, andChannel Center collections The Audio class notation for this Channel Front(ChannelLeft) is L. The Audio class notation for this Channel Front(Channel Right) is R.
The Audio class notation for this Channel Front(Channel Center) is C.

ChannelCenter Front

CLA collection of controls associated with the Center Front channels. To provide moredetail on controls, this collection may optionally contain Channel Left and Channel
Right collections The Audio class notation for this Channel Center Front(ChannelLeft) is LC (left of center in front). The Audio class notation for this Channel
Center Front(Channel Right) is RC (right of center in front).

Channel SideCL

A collection of controls associated with the Side or wall channels. To provide moredetail on controls, this collection may optionally contain Channel Left and Channel
Right collections The Audio class notation for this Channel Side(Channel Le2

ChannelSurroundCL

A collection of controls associated with the Surround channels. The Audio classnotation for this Channel Surround is S. To provide more detail on controls, thiscollection may optionally contain Channel Left and Channel Right collections The
Audio class notation for this Channel Surround(Channel Left) is LS. The Audio
class notation for this Channel Surround(Channel Right) is RS.

Channel Low
Frequency
Enhancement
Channel Top

CL

A collection of controls associated with the Low Frequency Enhancement or
Subwoofer channel. The Audio class notation for this channel is LFE.

CL

ChannelUnknownCL

A collection of controls associated with the Top or overhead channel. The Audio
class notation for this channel is T.
A collection of controls associated with an unknown channel position.

2 The end of this paragraph is missing from the original document. Has be left as is.

14315.13PC Theatre

Usage Name

Usage Type

Description

Media SelectSAP
Sub-channel

Sel

Select Tuner using Secondary Audio Program (SAP) information.

LC

Digital TV sub-channel selection control where the range of possible values is equal
to the number of sub-channels supported by the device.

Sub-channel
Increment
Sub-channel
Decrement
Alternate-audio
Increment
Alternate-audio
Decrement

OSC

Digital TV sub-channel control where each activation of the control increments thecurrent sub-channel selection to the next available subchannel.
Digital TV sub-channel control where each activation of the control decrements thecurrent sub-channel selection to the next available subchannel.
Digital TV alternate-audio control where each activation of the control increments
the current alternate-audio selection to the next available alternate-audio.
Digital TV alternate-audio control where each activation of the control decrements
the current alternate-audio selection to the next available alternate-audio.

OSC
OSC
OSC

144

15.14Programmable Buttons

Usage Name

Usage Type

Programmable NAry
Buttons

Description
The user defines the function of these buttons to control software applications or
GUI objects. The Programmable Buttons named array contains Section 12 Button
Page (0x09) usages as selectors.

145

15.15

Application Launch Buttons

These controls launch the application that most closely relates in function to the Usage Name. When a device containing
these Usages is installed, software must configure which application is associated with each control. The hardware oroperating system vendor can provide configuration tools for the user to assist in or change the configuration. The
following Usages are provided for this purpose:
Usage Name

Usage Type

Description

Application Launch
Buttons
AL Launch Button
Configuration Tool

NAry

This array contains Application Launch (AL) selectors.

Sel

Used to associate buttons in an array of Launch Buttons with the application
to be launched.

AL Programmable
Button Configuration
Tool

Sel

Used to associate Buttons in an array of Programmable Buttons with thefunction to be performed. An example would be a key programmed to playback a series of keystrokes.

AL Consumer Control
Configuration Tool

Sel

Used to associate generic controls with a sepcific consumer device or software
player to receive the control input, regardless of user focus. For example, a
set of Transport Controls could be associated with a DVD-ROM player thatwould receive the Mute input even when it does not have the user focus.

AL Word Processor

Sel

Launch word processor.

AL Text Editor
AL Spreadsheet

Sel
Sel

Launch text editor.
Launch spreadsheet application.

AL Graphics Editor

Sel

Launch graphics editor.

AL Presentation App

Sel

Launch presentation application.

AL Database App

Sel

Launch database application.

AL Email Reader
AL Newsreader
AL Voicemail

Sel
Sel
Sel

Launch email reader.
Launch newsreader.
Launch voicemail application.

AL Contacts/AddressBook
AL Calendar/Schedule

Sel

Launch contact database manager or address book application.

Sel

Launch calendar or schedule application.

AL Task/ProjectManager

Sel

Launch task or project manager application.

AL
Log/Journal/Timecard

Sel

Launch log, journal or timecard application.

AL
Checkbook/FinanceSel

Launch checkbook or finance application.

AL Calculator
AL A/V
Capture/Playback

Sel
Sel

Launch calculator.
Launch A/V Capture or Playback application.

AL Local Machine
Browser
AL LAN/WAN
Browser
AL Internet Browser
AL RemoteNetworking/ISP
Connect

Sel

Launch local machine browser.

Sel

Launch LAN/WAN browser.

Sel
Sel

Launch internet browser.
Launch remote networking or ISP connection.

146

AL Network
Conference
AL Network Chat

Sel

Launch network conference application.

Sel

Launch network chat application.

AL Telephony/Dialer

Sel

Launch telephony or dialer application.

AL LogonSel

Launch logon.

AL Logoff

Sel

Launch logoff.

AL Logon/Logoff

Sel

Launch logon or logoff depending on current state.

AL Terminal
Lock/Screensaver

Sel

Launch terminal lock or screensaver.

AL Control Panel

Sel

Launch control panel.

AL Command Line
Processor/Run

Sel

Launch command line processor (Run).

AL Process/Task
Manager

Sel

Launch process or task manager application.

AL Select
Task/Application

Sel

Launch task or application selection application.

AL Next
Task/Application

Sel

Go to next task or application.

AL Previous
Task/Application

Sel

Go to previous task or application.

AL Preemptive Halt
Task/Application

Sel

Initiate preemptive task/application halt.

AL Integrated Help
Center
AL Power Status

Sel

Launch a system wide, context-insensitive integrated help center.

Sel

Launch Power Status/Management application.

AL Documents

Sel

Launch Documents Browser application.

AL Thesaurus

Sel

Launch Thesaurus application.

AL DictionarySel

Launch Dictionary application.

AL Desktop

Sel

Display Desktop (in a windowed environment).

AL Spell Check

Sel

Launch Spell Check application.

AL Grammar Check

Sel

Launch Grammar Check application.

AL Wireless Status

Sel

Launch Wireless Status/Management application.

AL Keyboard Layout

Sel

Launch Keyboard Layout Management application.

AL Virus Protection

Sel

Launch Virus Protection application.

AL Encryption

Sel

Launch Encryption Management application.

AL Screen Saver

Sel

Launch Screen Saver application.

AL Alarms

Sel

Launch Timer/Alarm application.

AL ClockSel

Launch System Clock application.

AL File Browser

Sel

Launch System File Browser.

AL Image Browser

Sel

Launch Image Browser.

AL Audio Browser
AL Movie Browser

Sel
Sel

Launch Audio Browser.
Launch Movie Browser.

147

AL Digital Rights
Manager

Sel

Launch Digital Rights Manager (DRM) application. This application allows
users to manage digital rights or similar credentials that they have acquiredor created. The focus of the credentials cache is authentication for use ofdigital media.

AL Digital WalletSel

AL Instant Messaging

Sel

Lanches the user’s Digital Wallet manager. This application manages a store
of credentials whose focus is online commerce.
Launch the user’s Instant Messaging Application.

AL OEM
Features/Tips/Tutorial
Browser
AL OEM Help

Sel

Launch web browser with URL or app specific to PC/Web Appliance/Thin
Client/ Set-top Box OEM that points out features, tips, and tutorials.

Sel

Launch help file or online help specific to a PC system, thin client or terminal.
Not specific to OS or specific application.

AL Online
Community

Sel

Launch web browser with URL specific to an online community.

AL Entertainment
Content Browser

Sel

Launch web browser with URL specific to a site featuring music downloads,
streaming video, web casts, entertainment news, and reviews.

AL Online Shopping
Browser

Sel

Launch web browser with URL specific to an online store and a variety ofleading product and services.

AL SmartCard
Information/Help

Sel

Launch web browser with URL specific to SmartCard Information and Help

AL Market
Monitor/Finance
Browser
AL Customized
Corporate News
Browser
AL Online Activities
Browser

Sel

Launch web browser with URL specific to Market news or an applicationthat allows a user to monitor market activity.

Sel

Launch web browser with URL specific to internal corporate news.

Sel

Launch Online Activity browser. This usage would typically launch a web
browser with a URL specific to a site featuring activities centered aroundthe hardware package that included this button. i.e. a media center device
would launch a web site that had activities centered around photo shooting,video shooting, camera product reviews, etc. A gaming machine would link
the user to a website with gaming related reviews and news.

AL Research/Search
Browser

Sel

Launch web browser with URL or app specific to doing research like anencyclopedia or thesaurus website or app,

AL Audio Player

Sel

AL Message Status

Sel

Launches an audio player. This audio player can play one or many audio
formats.
Used to show status of stored voice or text messages.

AL Contact Sync

Sel

Used to initiate synchronization of device stored contact list with host system.

AL Navigation

Sel

Launch Navigation application.

AL Context-aware
Desktop AssistantSel

Launch context-aware desktop assistant application

14815.16

Generic GUI Application Controls

These controls provide shortcuts to software application functions or provide physical controls that mimic the controls
found in a typical GUI application. Most controls in a GUI are buttons, but others such as scroll bars or zoom controls
might be physically implemented as sliders or wheels.
With the exception of controls specifically assigned with a configuration tool, these controls apply their functions to
the application that has the user focus. Operation when no application has the user focus, when user focus cannot be
determined, or when the user focus is not unique, is undefined.
Usage Name

Usage Type

Description

Generic GUI
Application
Controls
AC New
AC OpenNAry

An array that contains generic GUI Application Control (AC) selectors.

Sel
Sel

Create a new document.
Open an existing document.

AC Close
AC Exit

Sel
Sel

Close the current document.
Exit the application.

AC Maximize
AC Minimize
AC Save
AC Print
AC Properties

Sel
Sel
Sel
Sel
Sel

Maximize the window size.
Minimize the window size or hides the window.
Save the current document.
Print the current document.
Display the properties of the current document.

AC UndoAC Copy

Sel
Sel

Undo the last action.
Copy the selected object to a buffer.

AC CutSel

Copy the selected object to a buffer and then delete the object.

AC Paste

Sel

Replace the selected object with the object in the buffer.

AC Select All

Sel

Select all objects in the current document.

AC FindSel

Locate an object in the current document.

AC Find and Replace

Sel

Locate an object in the current document and replace it with another object.

AC Search

Sel

Search for documents (URLs, files, web pages, etc).

AC Go To

Sel

Display a certain point in the document.

AC HomeSel

Load the designated root of a hierarchical set of objects.

AC Back

Sel

Load the previous document.

AC Forward
AC Stop

Sel
Sel

Load the next document.
Stop loading of the current document.

AC Refresh
AC Next Link

Sel
Sel

Reload the current document.
Find and select the next hypertext link in the document.

AC Previous Link

Sel

Find and select the next hypertext link in the document.

AC Bookmarks

Sel

Display a list of stored links.

AC History

Sel

Display an ordered list of previously accessed documents.

AC Subscriptions

Sel

Display a list of subscribed content providers.

AC Zoom In

Sel

Increase the zoom factor of the document display.

AC Zoom Out

Sel

Decrease the zoom factor of the document display.

AC ZoomLC

Set the zoom factor of the document display.

AC Full Screen View

Sel

Utilize the entire screen to display the document.

149

AC Normal View
AC View Toggle

Sel
Sel

Turn off Full Screen View.
Switch between Full Screen View and Normal View.

AC Scroll Up

Sel

Display a portion of the document closer to the beginning of the document.

AC Scroll Down

Sel

Display a portion of the document closer to the end of the document.

AC ScrollLC

Set the vertical offset of the display in the document.

AC Pan Left

Sel

Display a portion of the document closer to the left margin of the document.

AC Pan Right

Sel

Display a portion of the document closer to the right margin of the document.

AC PanLC

Set the horizontal offset of the display in the document.

AC New Window

Sel

Create a new window containing same document.

AC Tile Horizontally

Sel

Arrange all windows one above the other with no overlapping edges.

AC Tile VerticallySel

Arrange all windows one beside the other with no overlapping edges.

AC Format

Sel

Apply a format to the selected object.

AC Edit

Sel

Open the selected object for editing.

AC Bold
AC Italics
AC Underline
AC Strikethrough

Sel
Sel
Sel
Sel

Set the font to Bold.
Set the font to Italics.
Set the font to Underline.
Set the font to Underline.

AC Subscript

Sel

Set the font to Underline.

AC Superscript

Sel

Set the font to Underline.

AC All Caps

Sel

Set the font to Underline.

AC Rotate
AC Resize
AC Flip Horizontal

Sel
Sel
Sel

Enable rotation control.
Enable resize control.
Flip horizontally.

AC Flip Vertical

Sel

Flip vertically.

AC Mirror Horizontal

Sel

Mirror horizontally.

AC Mirror Vertical

Sel

Mirror vertically.

AC Font SelectAC Font Color
AC Font Size
AC Justify Left

Sel
Sel
Sel
Sel

Enable font select control.
Enable font color control.
Enable font size control.
Left-justify selection.

AC Justify Center

Sel

Center-justify horizontally.

AC Justify Right

Sel

Right-justify.

AC Justify Block

Sel

Block-justify horizontally.

AC Justify Top

Sel

Left-justify.

AC Justify Center

Sel

Center-justify vertically.

AC Justify Bottom

Sel

Bottom-justify.

AC Justify Block

Sel

Block-justify vertically.

AC Indent Decrease

Sel

Decrease paragraph indent.

AC Indent Increase

Sel

Increase paragraph indent.

AC Numbered List
AC Restart
Numbering

Sel
Sel

Convert text to a numbered list.
Renumber numbered text starting at 1.

AC Bulleted List

Sel

Convert text to a bulleted list.
150

AC Promote
AC Demote
AC YesAC No
AC Cancel
AC Catalog

Sel
Sel
Sel
Sel
Sel
Sel

Promote outline level.
Demote outline level.
Select Yes.
Select No.
Select Cancel.
E-commerce Go to Catalog.

AC Buy/CheckoutSel

E-commerce Buy Order.

AC Add to Cart
AC ExpandSel
Sel

E-commerce Add to Order List.
Expand a hierarchical List Node.

AC Expand All

Sel

Expand all hierarchical List Nodes.

AC Collapse

Sel

Collapse a hierarchical List Node.

AC Collapse All

Sel

Collapse all hierarchical List Nodes.

AC Print Preview

SelPreview Print Output.

AC Paste Special

Sel

Non-standard Paste.

AC Insert Mode

Sel

Toggle Insert/Overwrite edit modes.

AC Delete

Sel

Delete current object.

AC Lock

Sel

Lock display to current location in document.

AC UnlockSel

Unlock display from current location in document.

AC ProtectSel

ect selection from changes.

AC Unprotect

Sel

Unprotect selection from changes.

AC Attach Comment

Sel

Attach a comment to an object.

AC Delete Comment
AC View Comment

Sel
Sel

Delete a comment.
View a comment attached to an object.

AC Select Word

Sel

Select a word at edit point.

AC Select Sentence

Sel

Select a sentence at edit point.

AC Select Paragraph

Sel

Select a paragraph at edit point.

AC Select Column

Sel

Select a column at edit point.

AC Select Row

Sel

Select a row at edit point.

AC Select Table

Sel

Select entire table at edit point

AC Select Object

Sel

Select object at edit point.

AC Redo/Repeat

Sel

Redo or Repeat last action.

AC SortAC Sort Ascending

Sel
Sel

Sort selection.
Sort in ascending order.

AC Sort Descending

Sel

Sort in descending order.

AC Filter
AC Set Clock

Sel
Sel

Filter selection.
Set system clock.

AC View Clock

Sel

View system clock.

AC Select Time Zone

Sel

Set system time zone.

AC Edit Time Zones

Sel

Edit system time zone parameters.

AC Set Alarm

Sel

Set an alarm/timer.

AC Clear Alarm

Sel

Clear an alarm/timer.

AC Snooze Alarm

Sel

Snooze an alarm timer.

151

AC Reset Alarm

Sel

Reset an alarm/timer.

AC Synchronize

Sel

Synchronize remote and local data.

AC Send/Receive

Sel

Send/Receive batch messages.

AC Send To

Sel

Send message to a specific recipient.

AC Reply

Sel

Reply to a message, send only to sender in FROM: list.

AC Reply All

Sel

Reply to a message, send to all recipients in TO:, FROM: and CC: fields.

AC Forward Msg

Sel

Forward a message.

AC SendSel

Send a message.

AC Attach FileAC Upload

Sel
Sel

Attach a file.
Upload an object.

AC Download

Sel

Download an object.

AC Set Borders

Sel

Set the graphical borders of selection.

AC Insert Row
AC Insert Column
AC Insert FileAC Insert Picture

Sel
Sel
Sel
Sel

Insert a row.
Insert a column.
Insert a file.
Insert a picture.

AC Insert Object

Sel

Insert an object.

AC Insert Symbol

Sel

Insert a symbol.

AC Save and Close

Sel

Save and close object.

AC RenameSel

Rename object.

AC Merge

Sel

Merge multiple objects into a single object.

AC Split

Sel

Divide a single object into multiple objects.

AC Group

SelGroup multiple objects into a collection of objects.

AC Ungroup

Sel

Separate a collection of objects into multiple objects.

AC Distribute
Horizontally

Sel

Space objects evely along a horizontal axis.

AC Distribute
Vertically

Sel

Space objects evely along a vertical axis.

AC Next Keyboard
Layout SelectSel

Switch through set of keyboard layouts.

AC Navigation
Guidance
AC Desktop Show All
Windows
AC Desktop Show All
Applications

Sel

Play/re-play the last navigation guidance prompt.

SelShow all running Desktop windows.

Sel

Show all user applications.

AC Soft Key Left

Sel

Function assigned to left soft key when display is under host control.

AC Soft Key Right

Sel

Function assigned to right soft key when display is under host control.

AC Idle Keep Alive

Sel

Sent periodically when no keys are pressed to indicate that the devices is still
active.

15215.17

Contact List Controls

A device may store a list of telephone or email contacts, which consist of a record for each one which may have various
fields for the name and contact information.
A contact list contains various fields of data for each contact. These are represented as Buffered Byte arrays of characterdata. The character data is in the same format as specified for Section 20 Auxiliary Display Page (0x14) and ordering
is implied the same was as display data as defined in Section 20.1.4 Character Transfers ...
Usage Name

Usage Type

Description

Contact Index

DV

Indicates which record in the list of contacts is being storedor retrieved, with the Logical Minimum being the first contact
record on the device and Logical Maximum being the last.

Contact Edited

OOC

Contact Added

OOC

Contact Record Active

OOC

True if the contact record has been changed by the device since
it was last stored.
True if the contact record has been added by the device since it
was last stored.
If true the contact record is active, if false the record is not
currently in use.

Contact Status Flag

DV

Buffered Byte array of the status for each contact using thestatus OOC usages defined above.

Contact Nickname

DV

Nickname displayed for the contact.

Contact First Name

DV

Contact’s given name.

Contact Last Name
Contact Full NameDV
DV

Contact’s surname.
Contact’s full name including first and last names.

Contact Phone Number Personal

DV

Contact’s personal phone number.

Contact Phone Number Business

DV

Contact’s office phone number.

Contact Phone Number Mobile

DV

Contact’s mobile phone number.

Contact Phone Number Pager

DV

Contact’s paging device number.

Contact Phone Number Fax
Contact Phone Number Other

DV
DV

Contact’s facsimile number.
Contact’s uncategorized phone number.

Contact Email Personal

DV

Contact’s personal email address.

Contact Email BusinessContact Email Other

DV
DV

Contact’s business email address.
Contact’s uncategorized email address.

Contact Email ID

DVContact’s primary email address.

Contact Speed Dial Number

DV

The speed dial shortcut key sequence assigned to this contact.

Contact Misc

DV

unformatted binary data associated with this contact record.

15315.18Descriptive Controls

The below describes descriptive controls that are usable in a Feature Report to describe capabilities of a keyboard collection.
The controls may be constant or variable, depending on whether the keyboard is a fixed (e.g. wired) implementation, or
are reported from a wireless adapter that supports possibly dynamically-changing physical keyboards.
The Feature Report should be described in a keyboard Top-Level Application Collection, and the Input Report should be
described in a Consumer Top-Level Application Collection, in the same or similar field that reports other hotkeys such as
Mute or Volume controls.
Usage Name

Usage Type

Description

Extended Keyboard
Attributes Collection

CL

Declares a Logical Collection containing extended attributes fora keyboard. The descriptive controls must be enclosed withina Logical Collection tagged with this usage, within a Generic
Desktop(Keyboard) Top-Level Application Collection.

Keyboard Form Factor

SV

Keyboard Key TypeSV

Keyboard Physical LayoutSV• 0: Unknown Form Factor.
• 1: Full-Size keyboard.
• 2: Compact keyboard. Such keyboards are less than 13" wide.
• 0: Unknown Key Type.
• 1: Full-travel keys.
• 2: Low-travel keys such as those on laptop keyboards.
• 3: Zero-travel or virtual keys.
The usage does not refer to the legend set printed on the keys, but
only to the physical keyset layout, defined by the relative locationand shape of the textual keys in relation to each other. This usage
indicates which of the de facto standard physical layouts to which
the keyboard conforms. These layouts are commonly understood.
• 0: Unknown Layout.
• 1: 101 (e.g. US)• 2: 103 (Korea)• 3: 102 (e.g. German)• 4: 104 (e.g. ABNT Brazil)• 5: 106 (DOS/V Japan)• 6: Vendor-specific - If specified, ’Vendor-Specific Keyboard
Physical Layout’ must also be specified.

Vendor-Specific Keyboard
Physical LayoutSV

A numeric identifier of the particular Vendor-specific Keyboard
Physical Layout.
Values for this field are defined by
the hardware vendor but 0x00 is defined to not specify
a Vendor-specific Keyboard Physical Layout.
If non-zero,’Keyboard Physical Layout’ must have value 0x06. If this identifier
is 0x00, ’Keyboard Physical Layout’ must not have the value
0x06. If ’Keyboard Physical Layout’ is omitted, ’Vendor-Specific
Keyboard Physical Layout’ must also be omitted.

154

Keyboard IETF Language Tag
Index

Implemented Keyboard Input
Assist Controls

SV

SV

String index of a String Descriptor having an IETF Language
Tag. This Language Tag specifies the intended primary localeof the keyboard legend set, conformant to IETF BCP 473
or its successor. Operating systems may use this information
to help select a layout that maps keyboard usages to textual glyphs.
This specification does not specify the exact glyph sets, as
small variances may apply in particular implementations. If an
appropriate IETF Language Tag is not available, such as forcustom, adaptive or new layouts, the control should be omitted or
set to 0x00.
Bitmap for physically implemented controls. The input reportfield for Keyboard Input Assist controls may be declared as anarray using Usage Min and Usage Max tags, but the keyboard is
not required to implement every control in that range. However,host software may need to know which controls are actually
implemented in order to present an appropriate user interface.
• All 0: No Keyboard Input Assist controls are implemented.
• Bit 0: Previous Suggestion• Bit 1: Next Suggestion• Bit 2: Previous Suggestion Group• Bit 3: Next Suggestion Group• Bit 4: Accept Suggestion• Bit 5: Cancel Suggestion
All other bits reserved.

3 https://tools.ietf.org/html/bcp47

155

15.19Input Assist Selectors

The below describes usages for controls allowing users to offer specialized input for navigating and selecting from lists ofproposed insertions, as is currently done in common Input Method Editors. The controls are not limited to text insertions,but could be used by HID Host software to select and insert any type of object into the current editing context.
Keyboard Input Assist is any system that presents a list of potential elements to be inserted in the current input stream.
Types of elements could be graphical substitutions, word suggestions or script translations such as Rōmaji-to-Kanji inJapanese or Hangeul-to-Hanja in Korean. User interfaces may only present a subset of all possible candidate elements,
and a provision is made to page through groups of candidates with the Group navigation controls below.
Usage Name

Usage Type

Description

Keyboard Input Assist Previous

Sel

Selects the previous Keyboard Assist element, if any.

Keyboard Input Assist Next

Sel

Selects the next Keyboard Input Assist element, if any.

Keyboard Input Assist Previous
Group

Sel

Highlights the previous Keyboard Input Assist element group, if
any.

Keyboard Input Assist Next
Group

Sel

Highlights the previous Keyboard Input Assist element group, if
any.

Keyboard Input Assist Accept

Sel

Commits the selected Keyboard Input Assist element.

Keyboard Input Assist Cancel

Sel

Cancels Keyboard Input Assist for the current input elementboundary.

156

15.20Game Recording Controls

Usage Name

Usage Type

Description

Invoke Capture Interface

Sel

Invokes or dismisses the user interface that allows users to invoke
game capture and broadcasting features.

Start or Stop Game Recording

Sel

Toggles video capture of the game currently being played.

Historical Game Capture

Sel

Takes a recording of the last X amount of gameplay.

Capture Game Screenshot

Sel

Takes a screenshot of the game currently being played.

Show or Hide Recording
Indicator

Sel

Toggle the visibility of User Interface elements that indicate thatrecording is happening.

Start or Stop Microphone
CaptureSel

Toggle the inclusion of microphone input in game recordings andbroadcasting.

Start or Stop Camera Capture

Sel

Toggle the inclusion of webcam capture in game recordings andbroadcasting.

Start or Stop Game Broadcast

Sel

Start or stop broadcasting your gameplay to broadcast providers.

157

15.21

Access Controls

Provides system access controls to devices (i.e. similar to that commonly via System Settings) being programmaticallyaccessed by applications.
Usage Name

Usage Type

Description

Camera Access Enabled

OOC

Enables programmatic access to camera devices.

Camera Access Disabled

OOC

Disables programmatic access to camera devices.

Camera Access Toggle

OOC

Toggles the current state of the camera access control.

158

15.22

Keyboard Backlight Controls

Exposing keyboard backlight controls to the system (rather than exclusively controlled internally by the device), allows formore seamless integration with Hosts. Additionally, permits assistive technology (e.g. screen readers) during the device
learning mode, such that when a key is pressed in this mode, the assistive technology will tell the user what key waspressed and what it does. This allows visually impaired users to learn the keys of their device.
Usage Name

Usage Type

Description

Keyboard Brightness Increment

OSC

Brightens the keyboard backlight by one unit, if possible.

Keyboard Brightness Decrement

OSC

Dims the keyboard backlight by one unit, if possible.

Keyboard Backlight Set LevelLC

Sets the keyboard backlight brightness directly with a value.

Keyboard Backlight OOC

OOC

Turns the keyboard backlight on or off.

Keyboard Backlight Set
Minimum
Keyboard Backlight Set
Maximum
Keyboard Backlight Auto

OSC

Dims the keyboard backlight to minimum non-off level.

OSC

Brightens the keyboard backlight to its brightest level.

OOC

Permits the keyboard to use its own brightness algorithms.

159

15.23

Privacy Screen Controls

Some displays have an electronic privacy screen which can be activated to prevent others from seeing data on the user’s
screen, by limiting or obscuring the light that is emitted at an angle far from perpendicular to the screen.
It may be desirable to adjust the privacy level to account for ambient lighting, so the user can achieve their desired screen
visibility while maintaining an acceptable level of privacy.
Control for privacy screens may be performed by a dedicated device, or embedded in another device, such as a keyboard.
Usage Name

Usage Type

Description

Privacy Screen Toggle

OOC

Toggles state of privacy screen.

Privacy Screen Level Decrement

RTC

Decrease level of privacy screen.

Privacy Screen Level Increment

RTC

Increase level of privacy screen.

Privacy Screen Level Minimum

OSC

Engage lowest level of privacy screen.

Privacy Screen Level Maximum

OSC

Engage highest level of privacy screen.

160

16

Digitizers Page (0x0D)

This section provides detailed descriptions of the usages employed by Digitizer Devices.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Digitizer

CA

16.1

02
03

Pen
Light Pen

CA
CA

16.1
16.1

04
05
06
07

Touch Screen
Touch Pad
Whiteboard
Coordinate Measuring Machine

CA
CA
CA
CA

16.1
16.1
16.1
16.1

08

3D Digitizer

CA

16.1

09
0A
0B
0C

Stereo Plotter
Articulated Arm
ArmatureMultiple Point Digitizer

CA
CA
CA
CA

16.1
16.1
16.1
16.1

0D

Free Space Wand

CA

16.1

0E

Device Configuration [7]

CA

16.7

0F

Capacitive Heat Map Digitizer [54]

CA

16.9

10-1F
20

Reserved
Stylus [55]

CA/CL

16.2

21
22

Puck
Finger

CL
CL

16.2
16.2

23

Device settings [7]

CL

16.7

24

Character Gesture [45]

CL

16.8

25-2F
30

Reserved
Tip PressureDV

16.3.131
32

Barrel Pressure
In RangeDVMC

16.3.1
16.3.1

33
34
35

Touch
Untouch
Tap

MC
OSC
OSC

16.3.1
16.3.1
16.3.136

QualityDV

16.3.137
38
39

Data Valid
Transducer Index
Tablet Function Keys

MC
DV
CL

16.3.1
16.3.1
16.3.1

3A

Program Change Keys

CL

16.3.1

3B

Battery StrengthDV

16.3.1

3C
3D
3E
3F

InvertX TiltY TiltAzimuth

MC
DV
DV
DV

16.3.1
16.3.2
16.3.2
16.3.3

161

40
41
42

AltitudeTwist
Tip Switch

DV
DV
MC

16.3.316.3.3
16.4

43

Secondary Tip Switch

MC

16.4

44
45
46
47

Barrel Switch
EraserTablet Pick
Touch Valid [3]

MC
MC
MC
MC

16.4
16.4
16.4
16.5

48

Width [3]

DV

16.5

49

Height [3]

DV

16.5

4A-50
51

Reserved
Contact Identifier [7]

DV

16.6

52

Device Mode [7]

DV

16.7

53

Device Identifier [7]

DV/SV

16.7

54

Contact Count [7]

DV

16.6

55

Contact Count Maximum [7]

SV

16.6

56

Scan Time [51]

DV

16.5

57

Surface Switch [51]

DF

16.5

58

Button Switch [51]

DF

16.5

59

Pad Type [51]

SF

16.5

5A

Secondary Barrel Switch [18]

MC

16.4

5B

Transducer Serial Number [18]SV

16.3.1

5C

Preferred Color [25]DV

16.3.1

5D

Preferred Color is Locked [31]MC

16.3.1

5E

Preferred Line Width [31]DV

16.3.1

5F

Preferred Line Width is Locked [31]MC

16.3.160

Latency Mode [51]

DF

16.5

61

Gesture Character Quality [45]

DV

16.8

62

Character Gesture Data Length [45]

DV

16.8

63

Character Gesture Data [45]

DV

16.8

64

Gesture Character Encoding [45]

NAry

16.8

65

UTF8 Character Gesture Encoding [45]

Sel

16.8

66

UTF16 Little Endian Character Gesture Encoding [45]

Sel

16.8

67

UTF16 Big Endian Character Gesture Encoding [45]

Sel

16.8

68

UTF32 Little Endian Character Gesture Encoding [45]

Sel

16.8

69

UTF32 Big Endian Character Gesture Encoding [45]

Sel

16.8

6A

Capacitive Heat Map Protocol Vendor ID [54]

SV

16.9

6B

Capacitive Heat Map Protocol Version [54]

SV

16.9

6C

Capacitive Heat Map Frame Data [54]

DV

16.9

6D

Gesture Character Enable [63]

DF

16.8

162

6E-6F
70

Reserved
Preferred Line Style [31]NAry

16.3.1

71

Preferred Line Style is Locked [31]MC

16.3.1

72

Ink [31]Sel

16.3.1

73

Pencil [31]Sel

16.3.174

Highlighter [31]Sel

16.3.175

Chisel Marker [31]Sel

16.3.176

Brush [31]Sel

16.3.177

No Preference [31]Sel

16.3.1

78-7F
80

Reserved
Digitizer Diagnostic [31]

CL

16.7

81

Digitizer Error [31]

NAry

16.7

82

Err Normal Status [31]

Sel

16.7

83

Err Transducers Exceeded [31]

Sel

16.7

84

Err Full Trans Features Unavailable [31]

Sel

16.7

85

Err Charge Low [31]

Sel

16.7

86-8F
90

Reserved
Transducer Software Info [36]CL

16.3.1

91

Transducer Vendor Id [36]SV

16.3.1

92

Transducer Product Id [36]SV

16.3.1

93

Device Supported Protocols [36]NAry/CL

16.3.1

94

Transducer Supported Protocols [36]NAry/CL

16.3.195

No Protocol [36]Sel

16.3.1

96

Wacom AES Protocol [36]Sel

16.3.197

USI Protocol [36]Sel

16.3.198

Microsoft Pen Protocol [55]Sel

16.3.1

99-9F
A0

Reserved
Supported Report Rates [36]SV/CL

16.3.1

A1

Report Rate [36]DV

16.3.1

A2

Transducer Connected [36]SF

16.3.1

A3

Switch Disabled [36]Sel

16.3.1

A4

Switch Unimplemented [36]Sel

16.3.1

A5

Transducer Switches [36]Sel

16.3.1

A6-FFFF

Reserved
Table 16.1: Digitizer Page

163

16.1

Digitizer Devices

Usage Name

Usage Type

Description

DigitizerCA

A device that measures absolute spatial position, typically in two or moredimensions. This is a generic usage; several specialized types of digitizers are
distinguished by their attributes.

Pen

CA

A digitizer with an integrated display that allows use of a stylus. The system
must ensure that the sensed stylus position and the display representations of that
position are the same. A pen digitizer has enough time and space resolution for
handwriting input. A digitizer that may or may not be in an integrated display
application should use the more generic Digitizer collection usage.

Light PenCA

A display-integrated digitizer that relies on the underlying video raster to determine
position. The interpretation of light pen coordinates is sensitive to changes ofdisplay mode.

Touch ScreenCA

A digitizer with an integrated display that allows the use of a finger or stylus forpointing. Some touch-screen technologies can differentiate between the touch of afinger and the touch of a stylus.

White BoardCAA digitizer that is mounted vertically and can optionally be synchronized with aprojected video display.

Coordinate
Measuring
Machine3D DigitizerCA

A specialized digitizing instrument that is used to make spatial measurements ofmaps or photographic images. It is not suitable for screen pointing.

CA

General usage for a digitizer that measures position(s) in three dimensional space.

Stereo PlotterCA

A 3D digitizer that relies on the operator’s binocular vision to determine the positionof points on a stereoscopically rendered image.

Articulated
ArmCA

A 3D digitizer that uses a series of instrumented mechanical linkages to determine
the position of its tip in space.

ArmatureCA

A 3D digitizer that determines the position of several mechanical linkages in space.
An armature typically represents the position of a human body for animation ormodeling.

Multiple
Point
DigitizerCA

A 3D digitizer that detects the position of multiple points in space, typically throughsome non-mechanical means such as electromagnetic sensors.

Free Space
Wand
Capacitive
Heat Map
DigitizerCA

A 3D digitizer that detects the position of a point at the end of a handheld wand.

CA

A digitizer that collects raw capacitive data in a heat map format and reports tothe host device for additional processing.

164

16.2

Digitizer Transducer Collections

Usage Name

Usage Type

Description

StylusCA/CL

A stylus is a hand-held transducer that looks and is used like a pen. A digitizer
typically reports the coordinates of the tip of a stylus. A stylus may report
additional data independently of the digitizer. The Stylus collection is a physicalcollection containing all the controls physically located on the stylus. In the Stylus
collection a Pointer physical collection will contain the axes reported by the stylus.

Puck

CL

A puck, sometimes called a cursor, is a mouse-like transducer that rests on a low
friction surface. A digitizer typically reports the coordinates of crosshairs marked
on the puck. The Puck collection is a logical collection containing all the controls
located on the puck. In the Puck collection a Pointer physical collection willcontain the axes reported by the puck.

FingerCL

Any human appendage used as a transducer, such as a finger touching a touch screen
to set the location of the screen cursor. A digitizer typically reports the coordinatesof center of the finger. In the Finger collection a Pointer physical collection willcontain the axes reported by the finger.

165

16.3

Digitizer Report Fields

Not all digitizer field usages are from the Digitizer usage page. In particular, the usages for X and Y displacement comefrom the Generic Desktop page.

16.3.1

Digitizer-Specific Fields

Usage Name

Usage Type

Description

Tip Pressure

DV

Force exerted against the tablet surface by the transducer, typically a stylus.

Barrel Pressure

DV

Force exerted directly by the user on a transducer sensor, such as a pressure-sensitive
button on the barrel of a stylus.

In Range

MC

Indicates that a transducer is located within the region where digitizing is possible.
In Range is a bit quantity.

Touch

MC

A bit quantity for touch pads analogous to In Range that indicates that a finger istouching the pad. A system will typically map a Touch usage to a primary button.

UntouchOSC

Indicates the release of a finger from the surface of the touch screen. A system
typically maps an Untouch usage to the release of a primary button.

Tap

OSC

On a touch pad, indicates that the finger has been quickly lifted and replaced on
the tablet surface. This is typically mapped to a button event, but is distinct as no
physical button is involved.

QualityDV

If set, indicates that the transducer is sensed to be in a relatively noisefree regionof digitizing.

Data Valid
Transducer
Index

MC
DV

Indicates that the current data set is valid.
Indicates which transducer generated the current report. Transducer Index is useful
if multiple transducers generate identical reports. Otherwise, report IDs should be
used to distinguish different transducer types.

TabletFunction
Keys

CL

These controls are located on the surface of a digitizing tablet, and may be
implemented as actual switches, or as soft keys actuated by the digitizing transducer.
These are often used to trigger location-independent macros or other events.

Program
Change Keys

CL

Specialized function key targets that change some internal aspect of the digitizer’s
behavior.

Battery
Strength

DV

InvertMC

Indicates the amount of power remaining in a digitizer component that is outside
the scope of device power management. Typically this is the battery for a cordlesstransducer.
A bit that indicates that the currently sensed position originates from the end of astylus opposite the tip.

Transducer
Serial Number
Preferred ColorSV

A unique persistent identifier provided by the transducer currently in use.

DV

An indication of what color ink the transducer would prefer to render. This may be
an indication of the body color (for a set of virtual crayons) or might be an indicationof a switch selection (for example tail switches to choose color in a fashion similar
to multi-color inking pens). If the transducer allows writing to the usage it may
store a color for later retrieval. Only two data sizes are allowed, 8 bits and 24
bits. An eight-bit value specifies a color index based on the W3C named colors 1 2with the elimination of the grey/gray duplicates. The color name to index mapping
is presented in Appendix A Indices for 8bit Preferred Colors . A value of 0xFF
indicates no preferred color. A 24-bit value specifies three 8 bits values for RGB
color in that order. It is not possible to indicate no preferred color when using 24
bit values.

1 http://www.w3.org/TR/SVG/types.html
2 http://www.w3.org/TR/css3-color/

166

Preferred Color
is Locked

MC

This is an indication that the preferred color cannot be changed. This may be
because the body color or tail switch selection is expected to be honored, or thatthe transducer does not allow or is incapable of changing the preferred color.

Preferred Line
Width

DV

An indication of what line width the transducer would prefer to render. This may
be an indication of the physical width of the tip of a stylus. If the transducer allows
writing to the usage it may store a width for later retrieval. The descriptor for thisusage is expected to include logical and physical minimums and maximums. The
recommended physical resolution is 0.1 mm. A zero line width indicates minimum
possible width (such as one pixel width at any zoom factor).

Preferred Line
Width isLockedMC

PreferredLine Style

NAry

This is an indication that the preferred line width cannot be changed. This may be
because the line width indicates a physical tip size and is expected to be enforced,
or that the transducer does not allow or is incapable of changing the preferred line
width.
An indication of what line style the transducer would prefer to render. This may be
an indication of the physical characteristics of the stylus. If the transducer allows
writing to the usage it may store a line style for later retrieval.

Preferred Line
Style is Locked

MC

This is an indication that the preferred line style cannot be changed. This may
be because the transducer has physical ink or pencil and style is expected to be
enforced, or that the transducer does not allow or is incapable of changing thepreferred line style.

Ink

Sel

This type indicates an inking pen, such as ballpoint, roller ball, gel, or fountain.
This is usually the default style for note taking.

PencilSel

This type indicates a graphite pencil style.

Highlighter

Sel

This type indicates a flat (not chisel) tip highlighter style.

Chisel Marker

SelThis type indicates a chisel tip marker style.

Brush

Sel

This type indicates a round brush style.

No preference

SelThis indicates a lack of preference or a generic style.

Transducer
Software InfoCL

A collection of usages that is useful for software update purposes. For example thismay contain vendor ID, product ID, and software version information.

Transducer
Vendor Id

SV

A vendor identification from a list of vendors. This may or may not be a vendor ID
assigned by USB-IF.

Transducer
Product Id
DeviceSupported
ProtocolsSV

A vendor defined product Id.

NAry/CL

This is an array of the protocols that the digitizer device supports. This could also
be used as a collection of protocol/protocol version pairs to indicate not only the
protocols supported but also one or more versions of the protocol.

Transducer
Supported
Protocols

NAry/CL

This is an array of the protocols that the transducer supports. This could also
be used as a collection of protocol/protocol version pairs to indicate not only the
protocols supported but also one or more versions of the protocol.

No ProtocolSel

No supported protocol. This can be used to fill empty array elements.

Wacom AES
ProtocolUSI Protocol

Sel

Indicates the transducer supports the Wacom Active Electrostatic Stylus protocol.

Sel

Indicates the transducer supports the Universal Stylus Initiative protocol.

Microsoft Pen
ProtocolSupported
Report Rates

Sel

Indicates the transducer supports the Microsoft Pen protocol.

SV/CL

Reports per second supported by the digitizer. This may be a single value or may
act as a collection of supported rates.

167

Report RateDV

The current number of reports sent per second. If there is a single value for
Supported Report Rates the rate is assumed to be fixed. If there is more than
one value for Supported Report Rates the rate is assumed to be changeable to anyof the rates in the Supported Report Rates collection.

Transducer
Connected

SF

The transducer is actively connected. This is an indication that commands andqueries supported by the transducer can be issued.

Switch Disabled
SwitchUnimplemented

Sel
Sel

Used to indicate that one of the switches has been disabled.
Used to indicate a switch does not exist (such as a stylus with no secondary barrel
button).

Transducer
Switches

CL

Used as a container for switches on a transducer.

16.3.2

Tilt Orientation

X Tilt and Y Tilt are used together to specify the tilt away from normal of a digitizer transducer. In its normal position,
the values of X Tilt and Y Tilt for a transducer are both zero. The X Tilt/Y Tilt orientation of a system does not specify
the rotation of the transducer around its own normal axis.
Usage Name

Usage Type

Description

X TiltDV

This quantity is used in conjunction with Y Tilt to represent the tilt away fromnormal of a transducer, such as a stylus. The X Tilt value represents the planeangle between the Y-Z plane and the plane containing the transducer axis and the
Y axis. A positive X Tilt is to the right.

Y TiltDV

This value represents the angle between the X-Z and transducer-X planes. A positive
Y Tilt is toward the user.

16.3.3Azimuth-Altitude Orientation

Azimuth-altitude is an alternative to the tilt system of specifying a digitizer transducer’s orientation. This system includes
rotation of the transducer around its own axis.
Usage Name

Usage Type

Description

AzimuthDV

Specifies the counter-clockwise rotation of the cursor around the Z axis through afull circular range.

AltitudeDV

Specifies the angle with the X-Y plane through a signed, semicircular range. Positive
values specify an angle downward and toward the positive Z axis.

Twist

DV

Specifies the clockwise rotation of the cursor around its own major axis.

168

16.4

Digitizer Switch Usages

Usage Name

Usage Type

Description

Tip SwitchMC

A switch located at the tip of a stylus, indicating contact of the stylus with a surface.
A pen-based system or system extension would use this switch to enable the inputof handwriting or gesture data. The system typically maps Tip Switch to a primary
button in a non-pen context.

Secondary Tip
SwitchMC

A secondary switch used in conjunction with Tip Switch to indicate pressure above
a certain threshold applied with the stylus. The threshold switch is not closed unlessthe tip switch already is.

Barrel SwitchMC

A non-tip button located on the barrel of a stylus. Its function is typically mapped
to a system secondary button or to a Shift key modifier that changes the Tip Switch
function from primary button to secondary button.

EraserMCThis control is used for erasing objects. Following the metaphor of a pencil, it istypically located opposite the writing end of a stylus. It may be a bit switch or apressure quantity.

Tablet Pick

MC

Secondary
Barrel Switch

MC

The primary button used by CAD systems, typically to select an object. Sometimes
called Button Zero.
A second non-tip button located on the barrel of a stylus further from the tip thanthe Barrel Switch. Its function is typically mapped to a system secondary or tertiary
button.

169

16.5

Touch Digitizer Usages

These are to be used by devices that support additional information about touch contacts, such as the height and width ofthe contact, or combination pen/touch devices that report additional information to assist with accidental touch rejection(palm rejection).
Usage Name

Usage Type

Description

Touch Valid

MC

Indicates the device’s confidence that the touch contact was an intended, valid
contact. The device should report 0 if the contact is not a valid touch. The device
should report 1 if the contact is intended and valid (e.g. a pointing touch).

Width

DV

The width of a touch contact. Height and width of contact are assumed to becentered about the reported x and y values. Units are assumed to match x’s units.

HeightDV

The height of a touch contact. Height and width of contact are assumed to becentered about the reported x and y values. Units are assumed to match y’s units.

Scan Time

DV

Surface SwitchDF

For each frame reported, the digitizer shall report a timestamp in relative time. The
units are in 100 microseconds by default. The first scan time received is treated asa base time for subsequent reported times. This value represents the time difference
from the first frame that was reported after a device starts reporting data subsequent
to a period of inactivity. The time differences between reported scan times shouldreflect the scanning frequency of the digitizer. The scan time value should be thesame for all contacts within a frame.
To allow for better power management, a host may wish to indicate what it would
like a touchpad digitizer to not report surface digitizer contacts by clearing this flag.
By default, upon cold-boot/power cycle, touchpads that support reporting surface
contacts shall do so by default.

Button Switch

DF

To allow for better power management, a host may wish to indicate what it would
like a touchpad digitizer to not report button state changes by clearing this flag.
By default, upon cold-boot/power cycle, touchpads that support reporting button
state shall do so by default.

Pad TypeSF

A touchpad digitizer may be physically depressible (often referred to as a click-pad)or it may not (often referred to as a pressure-pad). This usage allows the device
to identify its pad type to the host. When set, the touchpad is non-depressible(pressure-pad); when clear, the touchpad is depressible (click-pad).

Latency ModeDF

The host may indicate to the input device when high latency is desirable for powersavings by setting this flag and normal latency mode when clear. By default, uponcold-boot/power cycle, digitizers shall report with normal latency.

170

16.6

Multi-touch Digitizer Usages

For devices that support repoting multiple simultaneous contacts.
Usage Name

Usage Type

Description

Contact
IdentifierDV

An identifier associated with a contact. The id persists for the duration of that
contact’s detection, but may be reused for another contact once the original is nolonger detected. Detection is assumed to extend from contact down to contact
up notifications (or for devices that support hover detection, contact in-range toout-of-range).

Contact CountDV

The current number of contacts the digitizer detects and is reporting.

Contact Count
Maximum

SV

Used to report the maximum number of concurrent contacts a digitizer is capableof detecting.

171

16.7

Device Configuration Usages

Usage Name

Usage Type

Description

DeviceConfiguration

CA

CA for the top-level collection housing a configuration feature report. A device
configuration feature report is used to support changing the digitizer’s behavior
dynamically.

Device Mode

DV

The current input mode configuration for a device. 0 represents reporting as amouse, 1 represents single input device (e.g. a HID single touch or pen device),and 2 represents multi-input device (e.g. HID touch device supporting contact
identifier and contact count maximum). For example, having a mouse collection
and specifying mouse mode allows broad down-level device support across hosts.

DeviceIdentifier

DV/SV

This is a static value (SV) when it is part of a digitizer or mouse top-level
collection. It is required when there are multiple digitizer top-level collections of
the same kind in a report descriptor. This usage uniquely identifies the digitizer
top-level collection and should appear in a feature report. If the device canfunction as a mouse, the mouse collection should have the same device identifier
as the corresponding digitizer collection. Devices with only one digitizer top-level
collection do not need to have a device identifier usage.
When the usage is part of a device settings logical collection, it is a dynamic value(DV). It allows the host to select the device it wants to configure. A value of 0
indicates all collections. A non-zero value indicates the top-level collection withmatching device identifier.

DeviceSettings

CL

The logical collection containing the device configuration usages (Device identifierand device mode).

Digitizer
Diagnostic

CL

This is a collection used for diagnostic purposes. This usage allows diagnostic
feature reports to be discovered by usage instead of a report ID.

Digitizer
Status

NAry

This is a collection of the status codes that the digitizer supports. The status codes
are reported in a single location array.

Err Normal
StatusErr Transducers
Exceeded

Sel

This status indicates the digitizer is operating normally.

Sel

This error will occur if the number of transducers in range of a digitizer exceeds thenumber of simultaneously supported transducers.

Err Full Trans
Features
Unavailable

Sel

This error will occur if all of the features of a transducer cannot be supported. This
could happen, for example, if the available bandwidth between a transducer anddigitizer is insufficient to transport all available data. In this situation the digitizer
may fall back to only transporting the highest priority data.

Err Charge Low

Sel

This error occurs when the transducer’s battery or super-cap charge is low and theuser needs to recharge their transducer.

172

16.8

Character Gesture Usages

Basic character gesture recognition allows an accessory to convey a single character string as a result of interpretingtransducer movement on a digitizer surface. For the host to properly detect support for these gestures, the accessory must
declare a logical collection with the following usages:• Character Gesture• Character Gesture Data Length• Character Gesture Data
• Gesture character enable
Additionally, the device must also include string encoding information. If more than one encoding type is supported, theymust be placed in a selector array. Otherwise, the accessory may declare individual encoding support via a static item.
Using the following usages:• Character Gesture Encoding• UTF8 Character Gesture Encoding• UTF16 Little Endian Character Gesture Encoding• UTF16 Big Endian Character Gesture Encoding• UTF32 Little Endian Character Gesture Encoding• UTF32 Big Endian Character Gesture Encoding
If the recognition system generates more than one interpretation of a gesture motion, alternate interpretations can beconveyed from a single device. This allows the host to select the appropriate string based on its current application
context.
Each gesture item follows the requirements detailed in Basic character gesture recognition, but must also include a
declaration for Character Gesture Quality in each logical collection. This gives the host additional qualitative information
so it can select the appropriate interpretation. Additionaly, if no alternatives are available, the recognition system must
inform the host by ensuring that only the first character is populated and all subsequent characters are cleared.
Usage Name

Usage Type

Description

Character GestureCL

Gesture Character Quality

DV

Character gesture controls. Multiple interpretations ofa character gesture must be declared as multiple logicalcollections
If there are multiple interpretations available, this usage
conveys the confidence of a particular interpretation.

Character Gesture Data Length

DV

Length of character data

Character Gesture Data

DV

Character data. If there is no valid interpretation to bereported this value must be cleared to zero.

Gesture Character Encoding

NAry

An array that identifies the character encoding used

UTF8 Character Gesture Encoding

Sel

UTF8 Character Gesture Encoding

UTF16 Little Endian Character
Gesture Encoding

Sel

UTF16 Little Endian Character Gesture Encoding

UTF16 Big Endian Character Gesture
Encoding

Sel

UTF16 Big Endian Character Gesture Encoding

UTF32 Little Endian Character
Gesture Encoding

Sel

UTF32 Little Endian Character Gesture Encoding

UTF32 Big Endian Character Gesture
Encoding

Sel

UTF32 Big Endian Character Gesture Encoding

Gesture Character Enable

DF

Enable or disable gesture character recognition
173

16.9

Heat Map Usages

Having advanced touch processing offloaded from firmware to a host device, can allow for additional context to beprovided for object classification, from the state of the device (gounding to devices, position of displays) to the user’s
intent (foreground app, location of UI elements on screen, etc).
Typically, this data is commonly represented as a heat map - a matrix of raw capacitive measurements representing thesensed capacitance at sensor locations across the screen. Currently, there are multiple formats for the encoding of raw
capacitive data which differ from vendor to vendor. These encodings allow for heat map data to be sent into multiple
reports for reporting of large sensor areas, reporting a subset of the heat map for power savings, and packaging additional
data relevant for input processing.
Usage Name

Usage Type

Description

Capacitive Heat Map Protocol Vendor ID

SV

Specifies the vendor of the heat map protocol, forinterpreting the data associated with an input of
Capacitive Heat Map Frame Data, and associatedadditional input usages which are neccessary for the
protocol. This would be a USB-IF Vendor ID.

Capacitive Heat Map Protocol Version

SV

Specifies the heat map encoding protocol version, if
applicable, to differentiate between multiple protocols
developed by a single vendor.

Capacitive Heat Map Frame Data

DV

Represents a heat map frame from a digitzer. The formatof the raw data inside this frame is dependent on the
protocol vendor specified in the Capacitive Heat Map
Protocol Vendor ID usage.

174

17

Haptics Page (0x0E)

The Physical Input Device framework defines a protocol for rich control of force-feedback devices, typically joysticks or
rumble packs. However, for many devices, only simple feedback is needed for common feedback such as clicks, buzzes andsuch that are non-directional, and should be consistent from device to device and vendor to vendor, albeit tuned to thespecific hardware.
The below specifies a simplified haptics feedback control, with most features being optional, from simple, autonomousclick feedback to somewhat more complex models with host-controlled variable intensity and timing. The protocol uses
discoverable, pre-defined user-level haptic events.
These haptics controls can be stand-alone, such as a phone vibration unit, or associated with a particular control or setof controls, such as a rigid-surface keyboard. As such, they may be contained within an independent Haptic Controller
Application.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Simple Haptic Controller

CA/CL

17.1

02-0F
10

Reserved
Waveform List

NAry

17.1

11

Duration List

NAry

17.1

12-1F
20

Reserved
Auto Trigger

DV

17.1

21

Manual Trigger

DV

17.1

22

Auto Trigger Associated Control

SV

17.1

23

Intensity

DV

17.1

24

Repeat Count

DV

17.1

25

Retrigger Period

DV

17.1

26

Waveform Vendor Page

SV

17.1

27
28
29-1000
1001
1002

Waveform Vendor ID
Waveform Cutoff Time
Reserved
Waveform None
Waveform Stop

SV
SV

17.1
17.1

SV
SV

17.1
17.1

1003
1004
1005
1006
1007
1008-2000
2001-2FFF

Waveform Click
Waveform Buzz Continuous
Waveform Rumble Continuous
Waveform Press
Waveform Release
Reserved
Reserved for Vendor Waveforms

SV
SV
SV
SV
SV

17.1
17.1
17.1
17.1
17.1

3000-FFFF

Reserved
Table 17.1: Haptics Page

175

17.1

Simple Haptic Controller

Usage Name

Usage Type

Description

Simple Haptic
Controller

CA/CL

Waveform List

NAry

Applied to a collection containing a Haptic Transducer Set to control simple
haptics events. The CA is for Haptic Transducer Sets with no association withother HID controls. The CL form is used when contained within another CA.
Collection containing Ordinals that contain the Usages of supported waveforms.
Vendor specific waveform IDs may also be used. See the Haptics Usage Page
table for the enumeration of pre-defined Waveform selector usages that canbe placed in the set. The Waveform List is mandatory, there is no default defined.
Standard waveform usage names are generic and are not intended to specify theparticular properties of a waveform. It is assumed that the device manufacturer
will design and incorporate waveforms appropriate to the resonance, dampening
and other properties of the mechanical system with a best effort to provide theintended effect.
Collection of Ordinals containing the default duration for each haptic waveform.
Default units are milliseconds.
Feature. Ordinal in the Waveform List to trigger autonomously. Default isundefined. If 0, autonomous triggering is disabled.

Duration List

NAry

Auto Trigger

DV

Manual Trigger

DV

Auto Trigger
Associated Control

SV

Intensity

DV

Feature or Output. Percentage of maximum intensity to apply to the
waveform. If declared as a feature, applies to all waveforms. If declared as
an output, applies to the Waveform ordinal specified by a Manual Trigger in thesame output report. Default is unspecified. NULL values are ignored.

Repeat CountDV

Feature or Output. Count of retriggered waveform firings per trigger. Default
is zero. NULL values are ignored.

Retrigger Period

DV

Feature or Output. Period before a retrigger occurs. Default units are
milliseconds. Setting to 0 uses the Duration in the Duration List. Default iszero. NULL values are ignored.

Waveform Vendor
Page

SV

Read-only Feature. Vendor Page in which the vendor-specific waveform usages
are defined. No default. If vendor-specific waveforms are declared, Waveform
Vendor Page is required. Writes to Waveform Vendor Page shall be ignored.

Waveform Vendor
ID

SV

Read-only Feature. Vendor ID of the vendor whom the Waveform Vendor Page
is defined. Default is the USB Device Vendor ID. Writes to Waveform Vendor
ID shall be ignored.

Waveform Cutoff
Time

DV

Feature. Maximum time for a continuous waveform or set of retriggered
waveforms before being automatically cut off. If any continuous waveform isdeclared (Duration = 0), Waveform Cutoff time is required. Default units areseconds. No default.

Waveform None
WaveForm Stop

SV
SV

Waveform Click
Waveform Buzz
Continuous

SV
SV

Output. Ordinal in the Waveform List to trigger immediately. May be
accompanied by Intensity, Repeat Count and/or Retrigger Period outputs tooverride feature variants of those controls.
Feature. Contains the 32-bit Extended Usage of a HID Input or LogicalCollection containing at least one HID Input. The Auto Trigger waveform
is autonomously triggered when a HID Input in the Auto Trigger AssociatedControl changes.

176

Waveform Rumble
Continuous
Waveform Press
Waveform Release

SV
SV
SV

177

17.2

Simple Haptic Controller Operation

A Simple Haptic Controller is declared by declaring an Application Collection or Logical Collection with the Simple Haptic
Controller usage.

17.2.1Lists

For the purposes of Simple Haptic Controllers, a List is a Logical Collection containing non-zero Ordinals. Lists are
declared by naming a Logical Collection with a Named Array usage, and then defining a set of Ordinal Page inputs,
outputs or features within that collection. A member of the List is referred to in this document as an Ordinal, and theOrdinal contains a value type appropriate for array. As such, Lists may contain Selectors, On-Off Controls, Dynamic
Values or other appropriate Usage Types. If a List is specified herein as read-only, then all Ordinals in the List are
unchanged if written. If any Ordinal receives a NULL value, the Ordinal is unchanged.
Note: Ordinal 0 is Reserved on the Ordinals page and shall not be declared.
The purpose of a List is to create an ordered array of elements. While the HID Specification indicates that collections
may contain any number of elements, the order of presentation of the elements is not specified. By using unique Ordinals,
the position of elements within a collection of controls is deterministic.

17.2.2

Waveforms

Simple Haptic Controllers shall expose the waveforms that can be triggered, and their durations. This is accomplishedwith a Waveform List and a Duration List.
Simple Haptic Controllers shall declare a Waveform List feature with at least one Waveform other than the implicit
required Waveform None and Waveform Stop waveforms (see below). The Waveform List is read-only. Each Ordinal in
the Waveform List contains the 16-bit Usage value of a valid waveform from the Haptics Page. Any Ordinal containing a
Usage value that is unknown to the Host should not be triggered by the Host.
17.2.2.1

Required Waveforms

All Simple Haptic Controllers shall support Waveform None in Ordinal 1 and Waveform Stop in Ordinal 2 of the Waveform
List. Waveform None is ignored by the Simple Haptic Controller and is provided as a means to permit writing other values
in a report without changing the waveform. Waveform None also permits gaps in the Waveform List. Waveform Stop
cancels any triggered waveform immediately. A Waveform List may contain additional Waveform None or Waveform Stop
Ordinals in any other Ordinal aside from Ordinal 1 and Ordinal 2. The implicit Ordinal 1 and Ordinal 2 are not declaredin the Waveform List.
17.2.2.2

Vendor Waveforms

A range is provided for vendor-specific waveform usages. If these are declared, a Waveform Vendor Page shall also be
declared within the Waveform List. To enable use of third-party haptic libraries, a third-party Waveform Vendor ID may
also be declared within the Waveform List to override the device Vendor ID. Irrespective of the optional Vendor ID or
Vendor Page declared, the vendor waveform usages themselves shall be within the Vendor Waveform range shown in the
Haptic Usage Page. Hosts shall correlate the Waveform Vendor Page and device Vendor ID or third-party Waveform Vendor
ID, if provided, to known waveform tables before triggering any vendor-specific waveform. Behavior of vendor-specificwaveforms other than Duration is unspecified.

17.2.3

Duration of Waveforms

Simple Haptic Controllers shall declare a Duration List feature with the same Ordinals declared in the Waveform List. The
Duration List is read-only. The Duration Ordinals contain the duration of each waveform declared in the corresponding
Ordinal in the Waveform List. The default units are milliseconds but other units may be applied. The Default Durationof Ordinal 1 and Ordinal 2 are implicitly zero and are not declared.

17817.2.3.1

Continuous Waveforms

A zero Duration indicates a Continuous Waveform. A continuous waveform triggered with a Manual Trigger shall be
stopped by triggering any waveform other than Waveform None, and Waveform Stop is recommended before triggering anyother waveform. A Continuous Waveform triggered by an Auto Trigger stops after cessation of input activity. The holdtime to detect cessation of input activity is not defined but should be short enough to correlate with the cessation ofchange but long enough to endure continuously during typical continuous user input.
If a Continuous Waveform is declared, a Waveform Cutoff time shall also be declared to ensure that the waveform does
eventually cease.

17.2.4

Triggers

At least one trigger mechanism shall exist. This can be a Manual Trigger output control or an Auto Trigger feature
control, or an Implicit Waveform.
The Auto Trigger and Manual Trigger contain Waveform Ordinals to play. Both are optional. Setting the Manual Trigger
immediately triggers the selected Waveform Ordinal. Setting the Auto Trigger selects the waveform to be triggered withautonomous triggering. Setting Manual Trigger or Auto Trigger to Ordinal 1 (Waveform None) has no effect. If the Auto
Trigger is set to Ordinal 2 (Waveform Stop), then Auto Mode is disabled. If the Manual Trigger is declared and the Auto
Trigger is not declared, then the device does not support autonomous triggering. If neither a Manual Trigger nor an Auto
Trigger is declared, then the lowest declared Waveform Ordinal is the default Implicit Waveform and is autonomously
triggered as if it were selected in a declared Auto Trigger. In this case, Haptic events can only be disabled by declaring
and setting Intensity to 0. Manual Trigger is an output and Auto Trigger have no default values – it is up to the device
manufacturer to determine if Auto Trigger has a Waveform Stop or other waveform by default. If the host needs to know
the Auto Trigger value at any time, it may read the control.
Triggers defined

Behavior

None

Autonomous Trigger of Implicit Waveform (use Intensity to enable/disable)

ManualSelectable-waveform Manual Trigger only

Auto

Selectable-waveform Autonomous Trigger only

Manual and Auto

Selectable-waveform Manual and Auto Triggers
Table 17.3: Trigger Behavior by Definition

Ordinal 0 is reserved on the Ordinals page and shall not be declared, is a NULL value, and shall be ignored if issued toeither Manual Trigger or Auto Trigger.
17.2.4.1

Auto Mode Trigger Association

Simple Haptic Controllers that support autonomous triggering may need a means to associate the Simple Haptic Controller
with one or more other HID input controls in the Application Collection. There are three scenarios supported:• No Association: In this scenario, the Simple Haptic Control is placed in a Simple Haptic Controller Application
Collection. The control or events that trigger autonomous haptic events is not associated with any HID control.
• Limited input trigger: In this scenario, a read-only Auto Trigger Associated Control feature is declared. The
Auto Trigger Associated Control contains a unique Extended Usage of a HID input control or collection (with HID
inputs) within the Application Collection but outside the Simple Haptic Controller collection. If identical controls
exist, wrap the associated control in a Logical Collection with a unique usage and indicate that usage. Any inputchange in the control or collection will trigger the Auto Mode or Implicit Waveform.
• Global input trigger: In this scenario, the Auto Trigger Associated Control feature is not declared. Any HID
input in the Application Collection will trigger the Auto Trigger or Implicit Waveform.

179

17.2.4.2

Retriggering

A Simple Haptic Controller may declare a Repeat Count feature and/or output control. The Repeat Count indicates thenumber of times to trigger any selected Waveform Ordinal per Auto Trigger or Manual Trigger. Default Repeat Countis zero. Writing a NULL Repeat Count has no effect. A repeat trigger is called a retrigger. Continuous retrigger is notsupported.
By default, the retrigger occurs at the end of the waveform. To modify the pacing of the retrigger in a Repeat Count,a Retrigger Period feature and/or output may be declared. If declared, the Retrigger Period defines the time between
retriggers. If the Repeat Count is zero, Retrigger Period is ignored. Writing a NULL Retrigger Period has no effect.
Writing a zero Retrigger Period value resets the retrigger to the corresponding value in the Duration List so that the
waveform immediately retriggers when it completes. Default Retrigger Period is zero. Default units of Retrigger Period
is milliseconds, but other units may be applied.
If a Repeat Count or Retrigger Period feature is declared, it supplies the default value for all triggered waveforms. If a
Manual Trigger output is accompanied by a Repeat Count or Retrigger Period output in the same report, the accompanying
value overrides the default value for that single Manual Trigger. Behavior when they are not in the same output report isundefined. Repeat Count and Retrigger Period are valid for continuous waveforms.
Issuing Ordinal 0 (Waveform None) to a Manual Trigger or Auto Trigger will have no effect. Any waveform can be
immediately canceled by writing Ordinal 1 (Waveform Stop) to a Manual Trigger. If Ordinal 1 is written to the Auto
Trigger, the waveform will be stopped at the next autonomous trigger. If a waveform is triggered, either via receipt ofa Manual Trigger, an autonomous trigger or retrigger before the prior waveform has completed, it shall stop the priorwaveform and start the new waveform.
17.2.4.3

Intensity

A Simple Haptic Controller may declare an Intensity feature and/or output control. The Intensity indicates the relative
intensity of the haptic waveform as a percentage of the designed full strength capability of the transducer(s). Default
Intensity is unspecified. Writing a NULL Intensity has no effect. If Intensity is set to zero, then the haptic transducer isdisabled.
If an Intensity feature is declared, it supplies the default value for all triggered waveforms. If a Manual Trigger isaccompanied by an Intensity output in the same report, the accompanying value overrides the default value. It is
recommended that if an Intensity output is declared that an Intensity feature also be declared so that the Host can readthe default value. Behavior when Intensity and Manual Trigger are not in the same output report is undefined.
Note: For the most consistent experience, hardware designers are encouraged to linearize Intensity according
to perceived intensity, not according to power or amplitude.

180

18

Unicode Page (0x10)

The Unicode Page directly maps to the two-octet form defined in the Unicode Standard.
The Unicode Standard, Version 1.1, is the newest version of the Unicode™ Standard. Unicode 1.1 includes the changes andadditions that were made to Unicode 1.0 in the process of alignment with the international character encoding standard,
ISO/IEC 10646-1, which was approved by ISO/IEC as an International Standard in June 1992, and published in May
1993. The character content and encoding of Unicode 1.1 is thus identical to that of the ISO/IEC 10646-1 UCS-2 (thetwo-octet form).

181

19

Eye and Head Trackers Page (0x12)

An eye tracker is a device designed to measure gaze point and eye position. When calibrated against a display device, an
eye tracker is capable of returning coordinates on the screen the user is looking at. Using these coordinates it is possible
to define mechanisms to interact with applications using eyes.
A head tracker performs a similar role, except it tracks the orientation of the head against the calibrated screen andreturns the corresponding coordinate. An eye tracker may be capable of tracking both head and eyes.
This page has facilities to discover, control and read data from eye trackers and head trackers mounted on the monitor(also referred to as remote trackers).
Note: To protect end-user privacy, the usages in this page should only be used for interactive use cases. Thismeans that a host that implements this interface must not transfer gaze point data to any other device, norstore gaze point data for later transfer to any other device. This applies both to raw gaze point data, as wellas any aggregate of this.
Usage ID

Usage Name

Usage Types

Section00

Undefined01

Eye Tracker

CA

19.1

02
03-0F
10

Head Tracker
Reserved
Tracking Data

CA

19.1

CP

19.3

11

Capabilities

CL

19.2

12

Configuration

CL

19.5

13
14
15-1F
20

StatusControl
Reserved
Sensor Timestamp

CL
CL

19.6
19.7

DV

19.1

21
22
23
24
25

Position X
Position Y
Position Z
Gaze Point
Left Eye Position

DV
DV
DV
CP
CP

19.1
19.1
19.1
19.1
19.1

26

Right Eye Position

CP

19.1

27
28
29
2A
2B
2C-FF
100

Head Position
Head Direction Point
Rotation about X axis
Rotation about Y axis
Rotation about Z axis
Reserved
Tracker Quality

CP
CP
DV
DV
DV

19.1
19.1
19.1
19.1
19.1

SV

19.2

101

Minimum Tracking Distance

SV

19.3

102

Optimum Tracking Distance

SV

19.3

103

Maximum Tracking Distance

SV

19.3

104
105

Maximum Screen Plane Width
Maximum Screen Plane Height

SV
SV

19.4
19.4

106-1FF

Reserved

182

200

Display Manufacturer ID

SV

19.5

201

Display Product ID

SV

19.5

202

Display Serial Number

SV

19.5

203

Display Manufacturer Date

SV

19.5

204
205

Calibrated Screen Width
Calibrated Screen Height

SV
SV

19.5
19.5

206-2FF
300

Reserved
Sampling Frequency

DV

19.6

301

Configuration Status

DV

19.6

302-3FF
400

Reserved
Device Mode Request

DV

19.7

401-FFFF

Reserved
Table 19.1: Eye and Head Trackers Page

183

19.1

Eye/Head Trackers

The origin of the coordinate system sits in the top left corner of the screen, x values increases in the right direction, yvalues increases downwards, and z values increases when moving outwards from the display facing the user.
Usage Name

Usage Type

Description

Eye Tracker

CA

Reports eye position and eye gaze point.
Default units are in micrometers for distances, and radians with fivedecimals for rotations.

Head Tracker

CA

Reports the head direction point and head position.
Default units are in micrometers for distances, and radians with fivedecimals for rotations.

Sensor Timestamp

DV

Sensor timestamp of the applicable physical collection.
Sensor timestamp is a 64–bit integer.
Since HID does not support
64–bit values natively and supports only signed 32–bit integers, this field isrepresented as an 8–byte blob. Default units are microseconds.

Position X

DV

X coordinate of the applicable physical collection.

Position Y

DV

Y coordinate of the applicable physical collection.

Position Z

DV

Z coordinate of the applicable physical collection.

Gaze PointCP

The location on the display the user is looking at. Contains the [X, Y]
coordinates on the screen where the user is gazing.

Left Eye PositionCP

The center of eyeball position of the left eye in 3D space relative to the defined
eye position origin. Contains the [X, Y, Z] coordinates of the left eye withrespect to the screen.

Right Eye PositionCP

The center of eye ball position of the right eye in 3D space relative to thedefined eye position origin. Contains the [X, Y, Z] coordinates of the righteye with respect to the screen.

Head PositionCP

The position and rotation of the head relative to the defined head position
origin. Contains the [X, Y, Z] coordinates of the head with respect to thescreen.
The [X, Y, Z] coordinates of the head is the mid point on a straightline between the users eyes. The head position collection also includes theorientation of the head, thus extending the physical collection with [Rx, Ry,
Rz] in extrinsic Euler angles, applied in Rx, Ry, Rz order.

Head Direction
Point

CP

Rotation about X axis

DV

The location on the display the user is pointing his face to. Contains the [X,Y] coordinates on the screen where the vector, originating from the [X, Y, Z]
Head Position coordinates while being orthogonal to the users face, intersects
with the screen.
Rotation about the X axis of the applicable physical collection.

Rotation about Y axis

DV

Rotation about the Y axis of the applicable physical collection.

Rotation about Z axis

DV

Rotation about the Z axis of the applicable physical collection.

184

19.2

Capabilities Collection

Usage Name

Usage Type

Description

Capabilities

CL

This collection contains the capabilities of the sensor.

Tracker Quality

SV

This field provides guidance regarding the quality of the tracker. It isan enumeration whose values are described below.
An eye tracker needs to report a quality level to be usable, andhead tracker does not require a specific quality level and should set thequality level to N/A.
• 0 : N/A
• 1 : Fine Gaze

Fine gaze: At least 95% of the Population has an Average Accuracy of <2°. Average Accuracy is defined as the average
Accuracy over a Screen under Normal Conditions. If more than two of the twelve measurement points are non valid, theaverage accuracy is defined to be Infinity.
Population is defined as a user group of at least 600 participants, distribution as follows:• Ages: 10–60, uniformly distributed.
• Gender: uniformly distributed.
• Eye color: light and dark, at least 40% of each category.
• Makeup: yes/no. At least 25% in each category.
• Sight correction: None, glasses (at least 20%), lenses (at least 5%).
• Glasses: Shall be uniformly distributed across nearsighted/farsighted. Diopters uniformly distributed at least up to+/-5.
Normal Conditions are defined as: Measured at 200–500 lux, user calibrated close to center of tracked volume, andwhere testing is done at a user position moved 10 cm from the calibrated position in a randomized direction (in X Y Z).
Screen. The screen is divided in a 4 by 3 grid, with one measurement point randomized in each of the 12 areas. Screen
dimensions must be the largest screen size supported by the tracker at the specified quality level. The screen backgroundcolor during calibration must be grey and during testing it must be black or white, selected randomly for each participant(at least 40% of each).
Accuracy is defined as offset between (1) measurement point and (2) average of all collected gaze data over 1000ms. It
must be at least one collected gaze data for the measurement point to be considered valid.

185

19.3

Tracking Distance

These fields with define the working distance of the eye or head tracker.
Default units are in micrometers.
Usage Name

Usage Type

Description

Tracking DataCP

Minimum Tracking DistanceSV

A read-only field specifying the least distance from the sensor that thesensor can accurately track the user.

Optimum Tracking DistanceSV

A read-only field specifying the distance at which the sensor gives themost accurate tracking data.

Maximum Tracking DistanceSV

A read-only field specifying the maximum distance, beyond which thesensor cannot track the user.

186

19.4

Maximum Screen Plane

These values specify the surface area within which the tracker can perform accurate tracking. These values may define asurface larger than that of the current calibrated screen, thus indicating that the tracker can recognize gaze coordinates
outside of the monitor. The tracker may also return data for gaze point outside this range. But the values outside of thisrange are likely to be less accurate.
Default units are in micrometers.
Usage Name

Usage Type

Description

Maximum Screen Plane WidthSV

A read-only field specifying the width of the largest surface thatcan be tracked at the optimal distance from the sensor.

Maximum Screen Plane HeightSV

A read-only field specifying the height of the largest surface thatcan be tracked at the optimal distance from the sensor.

187

19.5

Configuration Collection

First four usages in this collection correspond to the layout of the Display Product Identification of the EDID1 . The next
two usages contain the width and height of the calibrated display.
The monitor information identifies the calibrated display in case of multimonitor scenarios. The width and height are used
to scale the returned tracking data coordinates to logical pixels for application consumption. The data in this collectionneeds to be re-queried whenever the configuration status changes.
Usage Name

Usage Type

Description

Configuration

CL

Returns the EDID Information of the calibrated monitor.

Display Manufacturer ID

SV

Display Product ID

SV

The manufacturer ID of the calibrated display. This is two
bytes in size. It is the manufacturer’s 3-letter EISA PNP ID,
currently managed and assigned by UEFI.org. The encoding of
the three-letter ID is the same as in the EDID header version 1.3.
This is a two-byte value that contains the Product ID code of thecalibrated display.

Display Serial NumberSV

A four-byte value that has the serial number of the display.

Display Manufacturer DateSV

Calibrated Screen WidthSV

Calibrated Screen HeightSV

A two-byte value that contains the manufacturer assigned date forthe display. The lower order byte contains the week of manufacture,and the higher order byte contains the year of manufacture, less1990 for years from 1990-2245. If week=255, it is the model year
instead.
Width of the calibrated display in physical units. Default units aremicrometers.
Height of the calibrated display in physical units. Default units aremicrometers.

1 VESA Enhanced EDID Standard (PDF), Video Electronics Standards Association, 2000-02-09, p. 32, retrieved 2011-11-19

188

19.6

Status Collection

Usage Name

Usage Type

Description

Status

CLContains the current status of the device.
When the configuration status changes, the device should send an
input report notifying the OS.

Sampling Frequency

DVConfiguration Status

DV

An integer that specifies the current sampling frequency of thesensor. Default units are Hz.
An enumeration specifying the configuration status of the device.
• 1 : Ready - The device is configured and ready for use.
• 2 : Configuring - The device is undergoing configuration.
• 3 : Screen Setup Needed - Screen plane setup has not been
performed on the device.
• 4 : User Calibration Needed - The user needs to perform
a calibration to make the device usable.

189

19.7

Control Collection

Usage Name

Usage Type

Description

Control

CL

Contains ways to control the device. The allowed operations areto activate or inactivate disable gaze point, eye position or head
position measurements.

Device Mode Request

DV

This is an enumeration specifying the requested mode for the
tracker.
• 1 : Enable Gaze Point - Request device to provide gazepoint data.
• 2 : Enable Eye Position - Request device to provide eye
position data.
• 4 : Enable Head Position - Request device to provide head
position data.

190

20

Auxiliary Display Page (0x14)

The Auxiliary Display page is intended for use by simple alphanumeric/auxiliary displays that are used on consumer
devices. Making the alphanumeric and bitmap specific types of segments on an Auxiliary Display and creating a Custom
Segments Report (CL) allow display manufacturers to produce displays with different segments. (e.g. custom segment asa battery indicator on a mobile phone)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Alphanumeric Display

CA

20.1

02

Auxiliary Display [2]

CA

20.2

03-1F
20

Reserved
Display Attributes ReportCL

20.1.1

21
22
23
24

ASCII Character Set
Data Read Back
Font Read Back
Display Control Report

SF
SF
SF
CL

20.1.120.1.120.1.120.1.225

Clear Display

DF

20.1.226

Display EnableDF

20.1.2

27

Screen Saver Delay

SV/DV

20.1.228
29

Screen Saver Enable
Vertical Scroll

DF
SF/DF

20.1.2
20.1.3

2A

Horizontal Scroll

SF/DF

20.1.32B

Character ReportCL

20.1.4

2C

Display Data

DV

20.1.42D

Display Status

CL20.1.5

2E

Stat Not ReadySel

20.1.52F

Stat ReadySel

20.1.530
3132

Err Not a loadable character
Err Font data cannot be read
Cursor Position Report

Sel
Sel
Sel

20.1.520.1.520.1.6

33
34
35
36
37

Row
Column
Rows
Columns
Cursor Pixel Positioning

DV
DV
SV
SV
SF

20.1.620.1.620.1.620.1.620.1.6

38
39
3A
3B

Cursor Mode
Cursor Enable
Cursor Blink
Font Report

DF
DF
DF
CL

20.1.620.1.620.1.620.1.7

3C

Font Data

Buffered Bytes

20.1.7

3D
3E

Character Width
Character HeightSVSV

20.1.720.1.7

3F

Character Spacing Horizontal

SV

20.1.7191

40

Character Spacing VerticalSV

20.1.741
42

Unicode Character Set
Font 7-Segment

SFSF

20.1.120.1.1

43

7-Segment Direct Map

SF

20.1.1

44

Font 14-Segment

SF20.1.1

45

14-Segment Direct Map

SF

20.1.146

Display Brightness

DV20.1.247

Display Contrast

DV

20.1.2

48
49
4A
4B
4C
4D
4E-7F
80

Character Attribute
Attribute Readback
Attribute Data
Char Attr EnhanceChar Attr Underline
Char Attr BlinkReserved
Bitmap Size X [2]

CL
SF
DV
OOC
OOC
OOC

20.1.120.1.120.1.420.1.120.1.120.1.1

SV

20.2.181

Bitmap Size Y [2]SV

20.2.182

Max Blit Size [2]SV

20.2.4

83

Bit Depth Format [2]

SV

20.2

84

Display Orientation [2]DV

20.2.285

Palette Report [2]CL

20.2.386

Palette Data Size [2]SV

20.2.387

Palette Data Offset [2]SV

20.2.388

Palette Data [2]Buffered Bytes

20.2.3

89-89
8A

Reserved
Blit Report [2]CL

20.2.48B

Blit Rectangle X1 [2]SV

20.2.48C

Blit Rectangle Y1 [2]SV

20.2.48D

Blit Rectangle X2 [2]SV

20.2.48E

Blit Rectangle Y2 [2]SV

20.2.48F

Blit Data [2]Buffered Bytes

20.2.490

Soft Button [2]CL

20.2.1.5

91

Soft Button ID [2]SV

20.2.1.5

92

Soft Button Side [2]SV

20.2.1.5

93

Soft Button Offset 1 [2]SV

20.2.1.5

94

Soft Button Offset 2 [2]SV

20.2.1.5

95

Soft Button Report [2]SV

20.2.5

96-C1
C2

Reserved
Soft Keys [5]SV

20.1.1C3-CB
CC

Reserved
Display Data Extensions [5]SF

20.1.1

192

CD-CE
CF

Reserved
Character Mapping [5]

SV

20.3

D0-DC
DD

Reserved
Unicode Equivalent [5]

SV

20.3

DE-DE
DF

Reserved
Character Page Mapping [5]

SV

20.3

E0-FE
FF

Reserved
Request Report [5]

DV

20.4

100-FFFF

Reserved
Table 20.1: Auxiliary Display Page

193

20.1

Alphanumeric Display

Usage Name

Usage Type

Description

Alphanumeric
DisplayCA

A collection of alphanumeric-related display usages.

20.1.1Flags

If a flag is defined as a single-bit constant Input item, it is simply a read-only bit for the host. If a flag is defined as an
Output item, it can be used to enable or disable the flag’s feature.
The Display ASCII Character Set defines a minimum character set that will be supported by a display. The blankcharacter locations in the table may be optionally defined by a vendor. All characters will be passed to the display, so
to take advantage of the other characters the controlling application must know vendor-specific information. The total
number of character codes supported is vendor-specific.
Usage Name

Usage Type

Description

Display Attributes
ReportCL

Identifies the report associated with features of the display device.

ASCII Character Set

SF

Finding this usage in a display application descriptor indicates that thedevice supports an 8-bit ASCII-compatible character set as shown in Table
20.4. In the table, the high nibble of the character code is labeled acrossthe top and the low nibble is labeled down the left side. NoOp meansthat no operation is performed if this character is received. Space clears
the character position.

Unicode Character Set

SF

Finding this usage in a display application descriptor indicates that thedevice displays the Unicode character set. If defined, it implies that 16-bit
characters will be transferred in the Display Data field and the Buffered
Bytes flag is set.

Data Read BackSF

Finding this usage in a display application descriptor indicates that theCharacter Report can be read back. Otherwise, the display data iswriteonly.

Font Read BackSF

Finding this usage in a display application descriptor indicates that the
Font Report can be read back. Otherwise, the display font is write-only.

Font 7-Segment

SF

Finding this usage in a display definition indicates that the characters areconstructed using 7 segments. Displays that use 7-segment characters arelimited to 127 characters. Where, setting the most significant bit of any
character will turn on the decimal point (DP) of the respective character
position.

7-Segment Direct Map

SF

Finding this usage in a display application descriptor indicates that the
7-segment displays of the device support a direct bit-to-segment mapping(vs. ASCII mapping). i.e. bits in data bytes sent to the display enable
individual character segments and are not encoded as ASCII characters.
See Table 20.5 for the bit-to-segment mapping.

Font 14-Segment

SF

Finding this usage in a display definition indicates that the characters areconstructed using 14 segments. Displays that use 14-segment characters
are limited to 127 characters. Where, setting the most significant bitof any character will turn on the decimal point (DP) of the respective
character.

194

14-Segment Direct Map

SF

Finding this usage in a display application descriptor indicates that the
14-segment displays of the device support a direct bit-to-segment mapping(vs. ASCII mapping). i.e. bits in data sent to the display enable
individual character segments and are not encoded as ASCII characters.
Each character will take 2 bytes. See Table 20.6 for the bit-to-segment
mapping.

Character Attribute

CL

The fields defined in this collection, form a template which is usedby Attribute Data reports to access the attributes associated with acharacter. The fields defined in this collection are treated as static bysystem software. i.e. Modifying the fields defined by this collection will
not effect the characters of the display, a Data Attribute must be used
to do this. This collection will contain one or more of the following Char
Attr usages.

Char Attr Enhance

OOC

Char Attr Underline

OOC

If 1, Enhance character, else display character normally. i.e. for a
monochrome display, reverse all pixels in a character. Black pixels become
white, white pixels become black. If 0, pixels in a character are displayedwith their default.
If 1, Underline character, else no underline.

Char Attr Blink

OOC

If 1, Blink character, else no blink.

Attribute Readback

SF

Finding this usage in a display definition indicates that a Character
Report containing Attribute Data usages can be read back. Otherwise,
the display attributes are write-only.

Soft KeysSV

Indicates the number of keys which have software displayable labels arepresent on the device.

Display Data Extensions

SF

Finding this usage in the display attributes report indicates that theextensions to the display data report as defined below 20.7 are supportedby the device.

195

Low
NibbleHigh Nibble
2
Space

3
0

4
@

5
P

6
‘

7
p

1

!

1

A

Q

a

q

2
3

“
#

2
3

B
C

R
S

b
c

r
s

4
5
6

$
%
&

4
5
6

D
E
F

T
U
V

d
e
f

t
u
v

7

‘

7

G

W

g

w

8

(

8

H

X

h

x

9

)

9

I

Y

i

y

A

*

:

J

Z

j

z

B

+

;

K

[

k

{

C

,

<

L

\

l

|

D

-

=

M

]

m

}

E
F

.
/

>
?

N
O

^
_

n
o

0

0
NoOp

1

Table 20.4: ASCII Display Character Set

Bit
1
2
3
4
5
6
B
C
D
E
F
G
Table 20.5: 7-Segment Direct Mapping Data

0
A

Byte
0
1

7
DP

Bit
0
A
I

1
2
3
4
5
B
C
D
E
F
J
K
L
M
N
Table 20.6: 14-Segment Direct Mapping Data

6
G
Unused

7
H
DP

Code

Description

0x0006

Un-escape character. The character code following this character is treated as display data regardless of its
value. For example in a one-byte per character display to include display data with the value 0x1B which isnormally treated as an escape, sending the sequence 0x06 0x1B would result in the display data byte 0x1B
being written in that display position.

0x0007

Set cursor position, the following byte specifies a new cursor position with the upper 4 bits being the row andthe lower 4 bits being the column.

1960x0008

Set cursor position long, the following two bytes specifies a new cursor position. The first following byte has
7 bits specifying the row, and the most significant bit of the byte is a flag which if set indicates the cursor is
to be set to blink. The blinking of the cursor will continue until the cursor position is changed again. The
second byte has 8-bits specifying the column of the new cursor position.

0x000A
0x000BNew line character used to indicate the end of a row of characters.
Same as new line, except apply the current attribute to the last column of the current row. This is used toallow setting text for the first part of a row, but applying an attribute like title or highlight to the entire row.

0x000C

Clear the screen. This acts the same as the Clear Display dynamic flag, clearing the screen to all spacecharacters with the attribute set from the current attribute.
Escape character used to indicate that the following byte in the character data stream is a character attributebyte to set the current text attribute. The attribute will apply to all following characters until it is changed
again.

0x001B

Table 20.7: Display Data Extended Character Codes

20.1.2

Display Control

Usage Name

Usage Type

Description

Display Control
ReportCL

Identifies the report associated with controlling the features of the display
device.

Clear Display

DF

Clears the display to blanks (spaces) and returns the cursor to the home
position. This is a write-only control that returns 0 when read. Clear Display
is a single-bit data field where 0 is no operation and 1 clears the display.

Display EnableDF

Turns the display on or off. Display Enable is a single-bit data field where:
0 is display off and 1 is display on. If this usage is absent from the Report
descriptor, assume that the display is always enabled.

Screen Saver Delay

SV/DV

The delay in milliseconds between setting Screen Saver Enable and the timethat the screen save operation actually takes place.

Display Brightness

DV

This usage allows the brightness of the display to be adjusted.

Display Contrast

DV

This usage allows the contrast of the display to be adjusted.

Screen Saver Enable

DF

When enabled, the display will either put up a vendor-defined screen saveror turn the display off after the Screen Saver Delay. If this usage is absent
from the Report descriptor, assume that the display does not support thisfeature.

20.1.3Scrolling

If Horizontal Scrolling and Vertical Scrolling are disabled, characters received after the cursor reaches the right-mostcolumn (Column = Columns) will overwrite each other.
There are three scrolling modes: none, horizontal and vertical. Only one mode can be operative at a time. That is,
Horizontal Scrolling and Vertical Scrolling are mutually exclusive.
• When Vertical Scrolling is enabled, if the cursor is on the last character of a row (Column = Columns) other thanthe last row (Row != Rows), the next character received will cause the vertical cursor position to be incremented(Row++) and the horizontal cursor position to be set to 0 (Column = 0 ). If the cursor is on the last character(Column = Columns) of the last row (Row = Rows), the next character will cause all rows to be scrolled up, thelast row to be cleared, and the horizontal cursor position to be set to 0 (Column = 0 ).
• When Horizontal Scrolling is enabled, if the cursor is on the last character of a row (Column = Columns), the next
character received will cause the row to be scrolled horizontally one character position and the character to be placedon the last column of the row.
197

Any data that scrolls off the display is lost.
Vertical Scroll or Horizontal Scroll are considered to be Static Flags (SF). That is, if they are not declared, it can beassumed that the mode is not supported. However, if they are defined as Dynamic Flags then the modes can be enabledor disabled.
Usage Name

Usage Type

Description

Vertical Scroll

SF

Indicates whether the display will scroll vertically, where 0 means that the display
will not scroll vertically and 1 means that the display will scroll vertically.

Horizontal Scroll

SF

Indicates whether the row will scroll horizontally, where 0 means that the display
will not scroll horizontally and 1 means that the display will scroll horizontally.

20.1.4Character Transfers

An alphanumeric display can be configured to read or write multiple characters in a single message.
Usage Name

Usage Type

Description

Character
ReportCL

Display Data

DV

Identifies the report associated with character data movement. Flow control
is handled by the display NAKing Character reports until it is ready for morecharacters.
The report field that is written to pass characters to the display. When read, thecharacter currently indicated by the cursor is returned.
If this field is declared with a Report Count greater than 1, any characters notdefined as NoOp will be written to the display. When the same field is read, allcharacters from the current cursor position forward will be returned. If the range
goes beyond the end of the display memory, NoOp characters will be returned.

Attribute Data

Buffered Bytes

When the Display Data field is declared as Buffered Byte, the data in the array isused as an index in to the character ROM of the device. The Report Size willreflect the size of the character set supported by the device.

NAry

If a vendor wishes to identify specific characters other than those found in the
ASCII character set and does not want to send 16-bit Unicode characters to thedisplay, the vendor can describe the Display Data field as a Named Array (NAry)in which the Selector usages are pulled from the Unicode page.

DV

Writing to this field will modify the attribute values of the character currently
indicated by the current cursor. When read, the attribute values of the character
currently indicated by the cursor are returned.
This usage is always used in combination with a Display Data usage.
If this usage is declared, a Attribute Display collection must also be declared todefine its contents. The Report Size of this field will reflect the size of the data
fields as defined in the Attribute Display collection.
If this usage is declared with a Report Count greater than 1, the attributesof multiple characters can be changed simultaneoulsy, starting from the current
cursor position. If the Attribute Read Back usage is declared, then the attributesof the characters from the current cursor position forward will be returned when
this report is read. If the range goes beyond the end of the display memory, zerodata will be returned.

19820.1.5

Display Status

A display will initially generate a Stat Not Ready status until the display is fully initialized. No commands should be
issued to the display until the Stat Ready condition is detected. Any error will be held in Display Status field until it isread, at which point the Display Status field will return to the Stat Ready condition or be set to the next error code.
Usage Name

Usage Type

Description

Display Status

NAry

This is a collection of the status codes that the display supports. The status
codes are reported in a single location array.

Stat Not ReadySel

The display is not ready for use. These displays are typically slow to initialize.

Stat ReadySel

The display is ready for use. No commands can be issued until the Display
Status indicates Stat Ready.

Err Not a loadable
character
Err Font data cannot
be readSel

This error will occur after an attempt is made to load a character from a
non-loadable character location.
This error will occur after an attempt is made to read the font bitmap of acharacter location that the display does not support.

20.1.6Sel

Cursor Control

There are two ways of handling cursor positioning:• The Row and Column fields may be declared with a Report ID that is different from that used by the Data field.
This will allow the cursor to be positioned independently of writing characters to the display.
• The Row, Column, and Data can all be in the same report. If either the Row or Column field contains an out-of-range
value, the cursor position will not be updated.
In a Display device, the cursor position is applied first, then any characters are written to the display buffer. Reading the
Row and Column will provide the current cursor position.
If Cursor Mode is set to increment (1), nothing will happen if a character is entered when the cursor is on the last columnof the last row. If a character is entered when the cursor is on the last column of any other row, the cursor will move tothe first column of the next row.
If Cursor Mode is set to decrement (0), nothing will happen if a character is entered when the cursor is on the first columnof the first row. If a character is entered when the cursor is on the first column of any other row, the cursor will move tothe last column of the next row.
Usage Name

Usage Type

Description

CursorPosition
ReportCL

Identifies the report associated with cursor positioning.

Row

DV

Identifies or sets the vertical character position of the cursor. A value of 0 is the
topmost row.

Column

DV

Rows

SV

Identifies or sets the horizontal character position of the cursor. A value of 0 is theleftmost column.
Identifies the number of rows supported by the display.

ColumnsSV

Identifies the number of columns supported by the display.

199

Cursor Pixel
Positioning

SF

Indicates that the display supports pixel-level cursor positioning. Cursor Pixel
Positioning is a single-bit data field where 1 means that cursor pixel positioning isenabled and 0 means that character cursor positioning is enabled. If this usage isabsent, assume that the display only supports character-level positioning.
If pixel positioning is supported but character positioning is enabled, Character
Width plus Character Spacing Horizontal indicate the number of pixels the cursor
will move horizontally and Character Height plus Character Spacing Verticalindicate the number of pixels the cursor will move vertically.
Note: If pixel positioning is supported, the Row and Column fields must belarge enough to contain either a character or pixel address.

Cursor ModeDF

Sets the cursor movement direction. After each character code is sent to the display,
the cursor can automatically move either right or left. Cursor Mode is a single-bit
data field where 0 decrements the cursor position (moves left) and 1 increments the
cursor position (moves right). If this usage is absent from the Report descriptor,
assume that the cursor position is always incremented.

Cursor EnableDF

Turns the cursor on or off. Cursor Enable is a single-bit data field where 0 turns
the cursor off and 1 turns the cursor on. If this usage is absent from the Report
descriptor, assume that the cursor is always enabled.

Cursor BlinkDF

Turns the cursor blinking on or off. Cursor Blink is a single-bit data field where 0
turns blinking off and 1 turns blinking on. If this usage is absent from the Report
descriptor, assume that cursor blinking is off.

20.1.7

Font Loading

Alphanumeric displays that support loadable fonts will contain the usages described in this section.
To download a font, the report must contain the character code of the destination character and a bufferedbytes data fieldthat contains Character Width times Character Height bits of data. Font Data is organized as sequential rows of pixels
where the least significant bit contains the pixel in the upper right corner of the character.
Not all displays support downloading of all character locations, so the Display Status field should be checked after eachdownload to ensure that the operation completed successfully. An Err Not a loadable character value will be returned in
the Display Status field if an error occurred.
Not all displays support uploading of all character locations so the Display Status field should be checked after eachupload to ensure that the operation completed successfully. An Err Font data cannot be read value will be returned in
the Display Status field if an error occurred.
Usage Name

Usage Type

Description

Font ReportCL

Finding this usage in a display application descriptor indicates that the display
supports downloadable fonts. This usage is applied to a logical collection thatdefines the font download report.

Font Data

Buffered Bytes

A buffered-bytes data field that contains the font data.

The following usages define display parameters. These are normally static values defined in a Feature report.
The Character Spacing Horizontal and Character Spacing Vertical values indicate whether the intercharacter spacing must
be included in the downloaded font character or whether it is automatically set by the physical pixel layout of the display.
A Character Spacing of 0 implies that any inter-character spacing must be included in the downloaded font. If a Character
Spacing (Horizontal or Vertical) usage is not declared, it can be assumed that the respective inter-character spacing isforced by the physical pixel layout of the display and Character Spacing can therefore be assumed to be 1.
200

Usage Name

Usage Type

Description

Character WidthSV

Identifies the width of a character in pixels.

Character HeightSV

Identifies the height of a character in pixels.

Character Spacing Horizontal

SV

Identifies the horizontal distance between characters in pixels.

Character Spacing VerticalSV

Identifies the vertical distance between characters in pixels.

20.1.8Character Formats

A variety of character formats are supported: Matrix, 7-Segment and 14-Segment. The default format is a matrix ofsegments that are used to form characters. The Font 7-Segment and Font 14-Segment static flags are used to identify therespective character format. The absence of either of these flags implies a matrix type display.
20.1.8.1

MatrixA matrix display uses an array of individual segments to display characters and other symbols. Below is a typical example
is a 5x7 matrix of segments, separated from adjacent characters by one segment space.
Character
Width

Character Spacing Horizontal

Character Width = 5

Character
HeightCharacter Height = 7
Character Spacing Horizontal = 1

Character Spacing VerticalFigure 20.1: Matrix Character Segment Mapping
Matrix fonts are addressed as a packed array of segments, from left to right, top to bottom. Character Spacing segments
are ignored.

201

20.1.8.2

7-Segment

A 7-segment character is defined as segments A through G. The segments are mapped to bits in a character byte. The
decimal point is handled separately as the most significant bit of the character data. Since the definition of a 7-segment
display only requires 8 bits, ASCII mapping is not required. The 7-Segment Direct Map usage can be defined to indicatethat ASCII character mappings do not apply to the data received by the display.
Note: For 7-segment displays, the Character Width, Character Height, Character Spacing Horizontal andCharacter Spacing Vertical usages have no meaning.
A

F

B
G

E

C
DP
D

Figure 20.2: 7-Segment Character Segment Mapping

Digit

ASCII

Font Data

00
30
3F
01
31
06
02
32
5D
03
33
4F
04
34
66
05
35
6D
06
36
7D
07
37
07
08
38
7F
09
39
6F
0A
41
37
0B
42
7C
0C
43
39
0D
44
5E
0E
45
79
0F
46
71
Table 20.15: Example 7-Segment Font values for Hex digits

Note: 0x0B and 0x0D must be expressed as lower case so that they are not confused with 8 and 0, respectively.

202

20.1.8.3

14-Segment

A 14-segment character is defined as segments A through N. The segments are mapped to bits in a 16-bit value. The
decimal point is handled separately as the most significant bit of the character data.
Note: For 14-segment displays, the Character Width, Character Height, Character Spacing Horizontal andCharacter Spacing Vertical usages have no meaning.
Figure 20.1.8.3 shows the segment mapping of 14-segment font characters for a display that supports font loading.
Bit

Byte
0
1

0
A
I

1
B
J

2
3
4
C
D
E
K
L
M
Table 20.16: 14-Segment Font Data

5
F
N

6
G
Unused

I
A

H

J

F

B

G

K
E

C

N

L
D
M

DP

Figure 20.3: 14-Segment Character Segment Mapping

203

7
H
Unused20.2

Bitmapped Display

There are 3 types of Bit Depth Formats supported:• Monochrome, where a pixel value is interpreted as a monochrome intensity.
• Indexed, where a pixel value is either used as an index into a palette table to determine the color to be displayed.
• RGB, where each pixel value contains the respective color component values to be displayed.
Some Bit Depth formats support an Alpha channel. The following formula is applied to each color when calculating theresulting displayed pixel value.
DisplayedPixelComponent = (BlitDataComponent × Alpha) + (FrameBufferDataComponent×(MaximumPossibleAlphaValue − Alpha))
Where a component is the R, G, or B value of the an RGB pixel or the brightness value of a monochromatic display. The
MaximumPossibleAlphaValue is 1 for a 1 bit Alpha value or 255 for an 8-bit Alpha value.
Usage Name

Usage Type

Description

Auxiliary Display

CA

A collection of auxiliary display related usages.

20.2.1

Display Attributes Report

The usages defined in this section must be contained in a Display Attributes Report feature report, which declares thebasic capabilities of the device.
20.2.1.1

Display Specification

Usage Name

Usage Type

Description

Bitmap Size X

SVSpecifies the X Resolution -1 of the bitmap segment on the display.

Bitmap Size Y

SVSpecifies the Y Resolution -1 of the bitmap segment on the display.

20.2.1.2

Bit Depth Format

Usage Name

Usage Type

Description

Bit Depth FormatSV

Bit Depth Format

DV

ID of the bit depth format supported by the device. The format specifies
whether the display is Indexed or RGB, Monochrome or Color, and the bit
depth and format of the pixel data. See the Indexed and RGB Formats
described below for more details.
If multiple Bit Depth formats are supported by a display then multiple Bit
Depth Format usages will be declared in a Display Attributes Report. Anda Bit Depth usage must be declared in a feature report to allow the client to
set the current bit depth format.

20.2.1.3

Monochrome and Indexed Formats

An Indexed format is specified by OR’ing it with an RGB BitDepth format value. The resulting value not only specifies
the size of the palette table, but the RGB format of its entries. For instance, a BitDepth Format value of 0x13 indicatesthe palette has 16 entries, where each entry supports a 555 RGB color value.
It is not legal to declare an RGB Format that supports Alpha channels for an Indexed format.
A Palette Report must be declared if an Indexed format is defined. For Indexed formats the system is responsible for
initializing all palette entries. For Monochrome formats, a 0 pixel value displays the background color and the maximum
pixel value displays the foreground or Active color at maximum intensity.

204

Val

Title

Description

01

BitDepth Indexed 1 Bit

Specifies the display supports a pixel bit depth of 1 bit. If an Indexed format is
specified, the palette table will contain 2 entries for specifying two possible colors,
where pixel value is the index into the palette table. If a Monochrome format isdeclared, a 0x0 value displays the Background color for the pixel and a value of 1
displays is the Active color at maximum intensity.

02

BitDepth Indexed 2 Bits

Specifies the display supports a bit depth of 2 bits. If an Indexed format is specified,
the palette table will contain 4 entries. Not finding a Palette Report indicates a
Monochrome format, where a 0x0 value displays the Background color for the pixel
and a value of 3 displays is the Active color at maximum intensity.

03

BitDepth Indexed 4 Bits

Specifies the display supports a bit depth of 4 bits. If If an Indexed format is specified,
the palette table will contain 16 entries. If a Monochrome format is declared, a 0x0
value displays the Background color for the pixel and a value of 0xF displays is theActive color at maximum intensity.

04

BitDepth Indexed 8 Bits

Specifies the display supports a bit depth of 8 bits. If an Indexed format is specified,
the palette table will contain 256 entries. If a Monochrome format is declared, a 0x0
value displays the Background color for the pixel and a value of 0xFF displays is theActive color at maximum intensity.

20.2.1.4

RGB Formats

Note: bit 8 of the usage value is asserted if an alpha channel is supported.
Val

Title

Description

04

BitDepth Indexed 8 Bits

Specifies the display supports a bit depth of 8 bits. If an Indexed format is specified,
the palette table will contain 256 entries. If a Monochrome format is declared, a 0x0
value displays the Background color for the pixel and a value of 0xFF displays is theActive color at maximum intensity.

10

BitDepth RGB 555

Specifies the display supports a bit depth of 15 bits in a 16-bit value. Finding thisusage specifies that a Palette Report is invalid. Bits 0-4 indicate the red aspect ofa specific pixel. Bits 5-9 indicate the green aspect of the specific pixel. Bits 10-14
indicate the blue aspect of the indexed pixel. Bit 15 is unused in this pixel bit depth.

90

BitDepth ARGB 1555

Specifies the display supports a bit depth of 16 bits. Finding this usage specifies thata Palette Report is invalid. Bits 0-4 indicate the red aspect of a specific pixel. Bits
5-9 indicate the green aspect of the specific pixel. Bits 10-14 indicate the blue aspectof the indexed pixel. Bit 15 is the alpha value of the pixel.

20

BitDepth RGB 565

Specifies the display supports a bit depth of 16 bits. Finding this usage specifies
that a Palette Report is invalid. Bits 0-4 indicate the red aspect of a specific pixel.
Bits 5-10 indicate the green aspect of the specific pixel. Bits 11-15 indicate the blue
aspect of the indexed pixel.

30

BitDepth RGB 888

Specifies the display supports a bit depth of 24 bits. Finding this usage specifies
that a Palette Report is invalid. Bits 0-7 indicate the red aspect of a specific pixel.
Bits 8-15 indicate the green aspect of the specific pixel. Bits 16-23 indicate the blue
aspect of the indexed pixel.

C0

BitDepth ARGB 8888

Specifies the display supports a bit depth of 32 bits. Finding this usage specifies
that a Palette Report is invalid. Bits 0-7 indicate the red aspect of a specific pixel.
Bits 8-15 indicate the green aspect of the specific pixel. Bits 16-24 indicate the blue
aspect of the indexed pixel. Bits 25-31 indicate the alpha value of the pixel.

205

0A

BitDepth PARGB 8888

Specifies the display supports a bit depth of 32 bits. Finding this usage specifies thata Palette Report is invalid. The first 8 bit is the alpha value of the pixel. Note thatthe alpha value should be calculated into the following 24 bits of the pixel data. The
second 8 bits indicate the red aspect of a specific pixel. The third 8 bits indicate thegreen aspect of the specific pixel. The fourth 8 bits indicate the blue aspect of theindexed pixel.

40

BitDepth 8880

Specifies the display supports a bit depth of 32 bits. Finding this usage specifies
that a Palette Report is invalid. Bits 0-7 indicate the red aspect of a specific pixel.
Bits 8-15 indicate the green aspect of the specific pixel. Bits 16-23 indicate the blue
aspect of the indexed pixel. Bits 24-31 of the pixel data should be set to 0 and are
ignored by the display.

20.2.1.5

Soft Buttons

Soft (unlabeled) Buttons can be positioned around the edges of the display. Knowing the position of the button, an
application can render text or an icon close to the button that has the associated function, defining its purpose.
The existence of a Soft Button collection in a Report descriptor indicates that the device supports Soft Buttons. A Soft
Button collection defines the position of soft button. This information is normally retrieved at initialization time. During
run time, input reports are generated to indicate changes in the state of a button.
Note: The button collection will include usages from the functional Button Page (0x09) in order to represent
hardware buttons with an associated function.
Usage Name

Usage Type

Description

Soft Button

CL

This usage encapsulates 4 usages that define a Soft Button. The usages
are; a Button Usage Page declaration that defines button number, and Soft
Button Offset 1, Soft Button Offset 2, and Soft Button Side that defined
the position of the button on the periphery of the display. A Soft Button
collection is declared for each soft button present on the display.

Soft Button ID

SVSpecifies the Y Resolution -1 of the bitmap segment on the display.

Soft Button SideSVThis usage specifies the side of the display where the button resides. Where,
0 = top, 1 = bottom, 2 = left side. 3 = right side.

Soft Button Offset 1

SV

A static value that specifies the offset in pixels of the top or left edge of the
button. If the Soft Button Side usage equals top or bottom then the offset isin the column position of the side of the button nearest the origin. If the Soft
Button Side usage equals right or left then the offset is in the row positionof the side of the button nearest the origin.

Soft Button Offset 2

SVA static value that specifies the offset in pixels of the bottom or right edgeof the button. If the Soft Button Side usage equals top or bottom then theoffset is in the column position of the side of the button farthest from theorigin. If the Soft Button Side usage equals right or left then the offset is in
the row position of the side of the button farthest from the origin.

206

20.2.2

Orientation

Pixels are addressed in row and columns. The origin or 0,0 position is always in the upper left hand corner of the display.
Below is an example of a 128x64 bitmapped display.

0

Columns

127

0
Rows
Writing
Order63
Figure 20.4: Display Orientation and Writing Order

Usage Name

Usage Type

Description

Display Orientation

DV

This usage is declared if the orientation of the display can be changed during
usage. It identifies the location of the origin as viewed by the user. Note: theapplication must perform the translations necessary to correctly display thescreen to the user given the Orientation information.
• 0 – Origin at top left (default)• 1 – Origin at top right (rotated 90°clockwise)• 2 – Origin at bottom right (rotated 180°clockwise)• 3 – Origin at bottom left (rotated 270°clockwise)

20.2.3

Palette Report

Usage Name

Usage Type

Description

Palette ReportCL

Finding this usage in a display application descriptor indicates the
Bitmapped Display supports loadable Palettes. This usages applies to alogical collection that defines the palette download report.

Palette Data SizeSV

Specifies the number of palette table entries contained in the Palette Databuffered bytes field.

Palette Data Offset

SVSpecifies the offset into the palette table of the first entry contained in the
Palette Data buffered bytes field. This field can be optional if the Palette
Data Size is large enough to initialize the complete Palette table at once. If
not declared, then the all Palette table entries must be included in a PaletteRptr report.

Palette Data

Buffered Bytes

A collection of buffered bytes data that contains the palette data. The sizeof the individual palette entries are determined by the Bit Depth Format, see
the descriptions above. If a Palette Data Offset is declared then the palette
entries are loaded into the palette table starting at the offset declared by
the Palette Data Offset. If a Palette Data Offset is not declared then thepalette entries are loaded into the palette table starting at offset 0.

207

20.2.4

Blit Report

The following Blit Rectangle coordinates specify the bounding rectangle X1, Y1, X2, Y2 where the Blit Data buffer will
be moved. The coordinate values assume the default Orientation of the display.
If no Blit Rectangle usages are declared, then the client should assume that the data provided in the Blit Data is for theentire display buffer. i.e. the blit rectangle is (0,0, Bitmap Size X – 1, Bitmap Size Y – 1).
If a coordinate of the bounding rectangle is outside the boundaries of the display, the display will ignore data for this partof the Blit Data Buffer.
Usage Name

Usage Type

Description

Blit Report

CL

Blit Rectangle X1

DVThis usage is required for moving data to or from a Bitmapped Display
Device.
Specifies the X component of the top left corner of the rectangle for the blit.

Blit Rectangle Y1

DVSpecifies the Y component of the top left corner of the rectangle for the blit.

Blit Rectangle X2

DV

Blit Rectangle Y2

DV

Blit Data

Buffered Bytes

Specifies the X component of the bottom right corner of the rectangle forthe blit.
Specifies the Y component of the bottom right corner of the rectangle forthe blit.
The buffer that contains the pixel data for each pixel in a blit to a display.
The number of pixels contained in the Blit Data buffer equals:(BlitRectangleX1 −BlitRectangleX2 )×(BlitRectangleY1 −BlitRectangleY2 ).
The format of the pixel data is a function of the Bit Depth Format,
see Section 20.2.1.2 Bit Depth Format

Max Blit Size

20.2.5SV

The maximum size of a blit (in bytes) that is supported by the display.1

Soft Button Report

Usage Name

Usage Type

Description

Soft Button ReportSV

The Soft Button Report collection will include usages from Button Page
(0x09), which provides usages for generic non-function based button usages.
The IDs of these buttons are defined in a Soft Button collection.

1 Alternatively the maximum size of a blit (in bytes) that is supported by the display, is defined by the size of the buffered bytes field in theBlit Report.

208

20.3

Character Maps

It is usually the case that an alphanumeric display device is capable of supporting only a subset of displayable characters.
For Unicode characters in particular since the character set is so large that often only some of the characters can bedisplayed. To allow the host to determine which characters are displayable, the following HID usages are defined to map
Unicode UTF-16LE character codes to any of the device characters.
Usage Name

Usage Type

Description

Character MappingSV

Display data byte which maps to an associated Unicode Equivalent.

Unicode Equivalent

SV

Always 16 bits, this is the UTF-16LE code for the character mapped to theassociated display data byte.

Character Page
MappingSV

A Buffered Byte array of 256 values, one for each 256 byte character pageused when the Unicode display attribute is present. The value tells whether
the page of 256 bytes is used, matches Unicode UTF16-LE directly or has afull or partial character map.

Value
0x00

Definition
Page Not Used

0x01

Page Matches Unicode UTF-16 LE

0x02

Character Page Mapping returns partial map

0x03

Character Page Mapping returns full map
Table 20.28: Page Mapping Definitions

209

20.4

Requesting Reports

In some cases, the host may require the device to return a specific HID report. If the device supports these requests, it
can define an input report with the following usage and when received return the specified output report.
Usage Name

Usage Type

Description

Request Report

DV

Report ID of the requested output report.

210

Sensors Page (0x20)

21• The lowest-numbered IDs from 0x00 to 0xFF are Usages applied to Collections and represent sensor objects (mayequate to sensor Categories or Types).
• The IDs from 0x0100 to 0x07FF are Usages applied to Properties and Data Fields. These are grouped by the sensor
Category where the Usages are commonly employed, but this arrangement is arbitrary. Usages may be reported
by any sensor (or more than one sensor) if it makes sense to do so. Properties and Data Fields can also apply toCollections within a Collection described by a Categories or Types Usage.
• The IDs from 0x0300 to 0x03FF and 0x0529 (timestamp) are commonly used with all Sensors.
• The IDs from 0x0800 to 0x0FFF are Selector Usages used with Properties or Data Fields that are Named Array
enumerations. Selectors can also apply to Collections within a Collection described by a Categories or Types Usage.
• The IDs from 0x1000 to 0xEFFF are Properties or Data Fields from the 0x0100 to 0x0FFF range with Modifiers OR-ed
in to the top 4 bits. Note: 0x0100 to 0x0FFF are the base usages without Modifiers• The IDs from 0xF000 upward are reserved for proprietary use by vendors.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Sensor [12]

CA/CP

21.1

02-0F
10

Reserved
Biometric [12]

CA/CP

21.1

11

Biometric: Human Presence [12]

CA/CP

21.1

12

Biometric: Human Proximity [12]

CA/CP

21.1

13

Biometric: Human Touch [12]

CA/CP

21.1

14

Biometric: Blood Pressure [30]

CA/CP

21.1

15

Biometric: Body Temperature [30]

CA/CP

21.1

16

Biometric: Heart Rate [30]

CA/CP

21.1

17

Biometric: Heart Rate Variability [30]

CA/CP

21.1

18

Biometric: Peripheral Oxygen Saturation [30]

CA/CP

21.1

19

Biometric: Respiratory Rate [30]

CA/CP

21.1

1A-1F
20

Reserved
Electrical [12]

CA/CP

21.1

21

Electrical: Capacitance [12]

CA/CP

21.1

22

Electrical: Current [12]

CA/CP

21.1

23

Electrical: Power [12]

CA/CP

21.1

24

Electrical: Inductance [12]

CA/CP

21.1

25

Electrical: Resistance [12]

CA/CP

21.1

26

Electrical: Voltage [12]

CA/CP

21.1

27

Electrical: Potentiometer [12]

CA/CP

21.1

28

Electrical: Frequency [12]

CA/CP

21.1

29

Electrical: Period [12]

CA/CP

21.1

2A-2F
30

Reserved
Environmental [12]

CA/CP

21.1

211

31

Environmental: Atmospheric Pressure [12]

CA/CP

21.1

32

Environmental: Humidity [12]

CA/CP

21.1

33

Environmental: Temperature [12]

CA/CP

21.1

34

Environmental: Wind Direction [12]

CA/CP

21.1

35

Environmental: Wind Speed [12]

CA/CP

21.1

36

Environmental: Air Quality [30]

CA/CP

21.1

37

Environmental: Heat Index [30]

CA/CP

21.1

38

Environmental: Surface Temperature [30]

CA/CP

21.1

39

Environmental: Volatile Organic Compounds [30]

CA/CP

21.1

3A

Environmental: Object Presence [50]

CA/CP

21.1

3B

Environmental: Object Proximity [50]

CA/CP

21.1

3C-3F
40

Reserved
Light [12]

CA/CP

21.1

41

Light: Ambient Light [12]

CA/CP

21.1

42

Light: Consumer Infrared [12]

CA/CP

21.1

43

Light: Infrared Light [30]

CA/CP

21.1

44

Light: Visible Light [30]

CA/CP

21.1

45

Light: Ultraviolet Light [30]

CA/CP

21.1

46-4F
50

Reserved
Location [12]

CA/CP

21.1

51

Location: Broadcast [12]

CA/CP

21.1

52

Location: Dead Reckoning [12]

CA/CP

21.1

53

Location: GPS (Global Positioning System) [12]

CA/CP

21.1

54

Location: Lookup [12]

CA/CP

21.1

55

Location: Other [12]

CA/CP

21.1

56

Location: Static [12]

CA/CP

21.1

57

Location: Triangulation [12]

CA/CP

21.1

58-5F
60

Reserved
Mechanical [12]

CA/CP

21.1

61

Mechanical: Boolean Switch [12]

CA/CP

21.1

62

Mechanical: Boolean Switch Array [12]

CA/CP

21.1

63

Mechanical: Multivalue Switch [12]

CA/CP

21.1

64

Mechanical: Force [12]

CA/CP

21.1

65

Mechanical: Pressure [12]

CA/CP

21.1

66

Mechanical: Strain [12]

CA/CP

21.1

67

Mechanical: Weight [12]

CA/CP

21.1

68

Mechanical: Haptic Vibrator [12]

CA/CP

21.1

69

Mechanical: Hall Effect Switch [12]

CA/CP

21.1

6A-6F

Reserved212

70

Motion [12]

CA/CP

21.1

71

Motion: Accelerometer 1D [12]

CA/CP

21.1

72

Motion: Accelerometer 2D [12]

CA/CP

21.1

73

Motion: Accelerometer 3D [12]

CA/CP

21.1

74

Motion: Gyrometer 1D [12]

CA/CP

21.1

75

Motion: Gyrometer 2D [12]

CA/CP

21.1

76

Motion: Gyrometer 3D [12]

CA/CP

21.1

77

Motion: Motion Detector [12]

CA/CP

21.1

78

Motion: Speedometer [12]

CA/CP

21.1

79

Motion: Accelerometer [12]

CA/CP

21.1

7A

Motion: Gyrometer [12]

CA/CP

21.1

7B

Motion: Gravity Vector [30]

CA/CP

21.1

7C

Motion: Linear Accelerometer [30]

CA/CP

21.1

7D-7F
80

Reserved
Orientation [12]

CA/CP

21.1

81

Orientation: Compass 1D [12]

CA/CP

21.1

82

Orientation: Compass 2D [12]

CA/CP

21.1

83

Orientation: Compass 3D [12]

CA/CP

21.1

84

Orientation: Inclinometer 1D [12]

CA/CP

21.1

85

Orientation: Inclinometer 2D [12]

CA/CP

21.1

86

Orientation: Inclinometer 3D [12]

CA/CP

21.1

87

Orientation: Distance 1D [12]

CA/CP

21.1

88

Orientation: Distance 2D [12]

CA/CP

21.1

89

Orientation: Distance 3D [12]

CA/CP

21.1

8A

Orientation: Device Orientation [12]

CA/CP

21.1

8B

Orientation: Compass [12]

CA/CP

21.1

8C

Orientation: Inclinometer [12]

CA/CP

21.1

8D

Orientation: Distance [12]

CA/CP

21.1

8E

Orientation: Relative Orientation [30]

CA/CP

21.1

8F

Orientation: Simple Orientation [30]

CA/CP

21.1

90

Scanner [12]

CA/CP

21.1

91

Scanner: Barcode [12]

CA/CP

21.1

92

Scanner: RFID [12]

CA/CP

21.1

93

Scanner: NFC [12]

CA/CP

21.1

94-9F
A0

Reserved
Time [12]

CA/CP

21.1

A1

Time: Alarm Timer [12]

CA/CP

21.1

A2

Time: Real Time Clock [12]

CA/CP

21.1

A3-AF

Reserved213

B0

Personal Activity [30]

CA/CP

21.1

B1

Personal Activity: Activity Detection [30]

CA/CP

21.1

B2

Personal Activity: Device Position [30]

CA/CP

21.1

B3

Personal Activity: Pedometer [30]

CA/CP

21.1

B4

Personal Activity: Step Detection [30]

CA/CP

21.1

B5-BF
C0

Reserved
Orientation Extended [30]

CA/CP

21.1

C1

Orientation Extended: Geomagnetic Orientation [30]

CA/CP

21.1

C2

Orientation Extended: Magnetometer [30]

CA/CP

21.1

C3-CF
D0

Reserved
Gesture [60]

CA/CP

21.1

D1

Gesture: Chassis Flip Gesture [60]

CA/CP

21.1

D2

Gesture: Hinge Fold Gesture [60]

CA/CP

21.1

D3-DF
E0

Reserved
Other [12]

CA/CP

21.1

E1

Other: Custom [12]

CA/CP

21.1

E2

Other: Generic [12]

CA/CP

21.1

E3

Other: Generic Enumerator [12]

CA/CP

21.1

E4

Other: Hinge Angle [59]

CA/CP

21.1

E5-EF
F0

Reserved
Vendor Reserved 1 [12]

CA/CP

21.1

F1

Vendor Reserved 2 [12]

CA/CP

21.1

F2

Vendor Reserved 3 [12]

CA/CP

21.1

F3

Vendor Reserved 4 [12]

CA/CP

21.1

F4

Vendor Reserved 5 [12]

CA/CP

21.1

F5

Vendor Reserved 6 [12]

CA/CP

21.1

F6

Vendor Reserved 7 [12]

CA/CP

21.1

F7

Vendor Reserved 8 [12]

CA/CP

21.1

F8

Vendor Reserved 9 [12]

CA/CP

21.1

F9

Vendor Reserved 10 [12]

CA/CP

21.1

FA

Vendor Reserved 11 [12]

CA/CP

21.1

FB

Vendor Reserved 12 [12]

CA/CP

21.1

FC

Vendor Reserved 13 [12]

CA/CP

21.1

FD

Vendor Reserved 14 [12]

CA/CP

21.1

FE

Vendor Reserved 15 [12]

CA/CP

21.1

FF

Vendor Reserved 16 [12]

CA/CP

21.1

100-1FF
200

Reserved
Event [12]

DV

21.3

201

Event: Sensor State [12]

NAry

21.3

214

202

Event: Sensor Event [12]

NAry

21.4

203-2FF
300

Reserved
Property [12]

DV

21.5

301

Property: Friendly Name [12]

SV

21.5

302

Property: Persistent Unique ID [12]

DV

21.5

303

Property: Sensor Status [12]

DV

21.5

304

Property: Minimum Report Interval [12]

SV

21.5

305

Property: Sensor Manufacturer [12]

SV

21.5

306

Property: Sensor Model [12]

SV

21.5

307

Property: Sensor Serial Number [12]

SV

21.5

308

Property: Sensor Description [12]

SV

21.5

309

Property: Sensor Connection Type [12]NAry

21.5.130A

Property: Sensor Device Path [12]

DV

21.5

30B

Property: Hardware Revision [12]

SV

21.5

30C

Property: Firmware Version [12]

SV

21.5

30D

Property: Release Date [12]

SV

21.5

30E

Property: Report Interval [12]

DV

21.5

30F

Property: Change Sensitivity Absolute [12]

DV

21.5

310

Property: Change Sensitivity Percent of Range [12]

DV

21.5

311

Property: Change Sensitivity Percent Relative [12]

DV

21.5

312

Property: Accuracy [12]

DV

21.5

313

Property: Resolution [12]

DV

21.5

314

Property: Maximum [12]

DV

21.5

315

Property: Minimum [12]

DV

21.5

316

Property: Reporting State [12]NAry

21.5.2317

Property: Sampling Rate [12]

DV

21.5

318

Property: Response Curve [12]

DV

21.5

319

Property: Power State [12]NAry

21.5.331A

Property: Maximum FIFO Events [27]SV

21.5.431B

Property: Report Latency [27]DV

21.5.431C

Property: Flush FIFO Events [30]DF

21.5.431D

Property: Maximum Power Consumption [30]DV

21.5.431E

Property: Is Primary [50]

DF

21.5

31F-3FF
400

Reserved
Data Field: Location [12]

DV

21.10

401-401
402

Reserved
Data Field: Altitude Antenna Sea Level [12]

SV

21.10

403

Data Field: Differential Reference Station ID [12]

SV

21.10

404

Data Field: Altitude Ellipsoid Error [12]

SV

21.10

215

405

Data Field: Altitude Ellipsoid [12]

SV

21.10

406

Data Field: Altitude Sea Level Error [12]

SV

21.10

407

Data Field: Altitude Sea Level [12]

SV

21.10

408

Data Field: Differential GPS Data Age [12]

SV

21.10

409

Data Field: Error Radius [12]

SV

21.10

40A

Data Field: Fix Quality [12]NAry

21.10.2

40B

Data Field: Fix Type [12]NAry

21.10.3

40C

Data Field: Geoidal Separation [12]

SV

21.10

40D

Data Field: GPS Operation Mode [12]NAry

21.10.4

40E

Data Field: GPS Selection Mode [12]NAry

21.10.5

40F

Data Field: GPS Status [12]NAry

21.10.6

410

Data Field: Position Dilution of Precision [12]

SV

21.10

411

Data Field: Horizontal Dilution of Precision [12]

SV

21.10

412

Data Field: Vertical Dilution of Precision [12]

SV

21.10

413

Data Field: Latitude [12]

SV

21.10

414

Data Field: Longitude [12]

SV

21.10

415

Data Field: True Heading [12]

SV

21.10

416

Data Field: Magnetic Heading [12]

SV

21.10

417

Data Field: Magnetic Variation [12]

SV

21.10

418

Data Field: Speed [12]

SV

21.10

419

Data Field: Satellites in View [12]

SV

21.10

41A

Data Field: Satellites in View Azimuth [12]

SV

21.10

41B

Data Field: Satellites in View Elevation [12]

SV

21.10

41C

Data Field: Satellites in View IDs [12]

SV

21.10

41D

Data Field: Satellites in View PRNs [12]

SV

21.10

41E

Data Field: Satellites in View S/N Ratios [12]

SV

21.10

41F

Data Field: Satellites Used Count [12]

SV

21.10

420

Data Field: Satellites Used PRNs [12]

SV

21.10

421

Data Field: NMEA Sentence [12]

SV

21.10

422

Data Field: Address Line 1 [12]

SV

21.10

423

Data Field: Address Line 2 [12]

SV

21.10

424

Data Field: City [12]

SV

21.10

425

Data Field: State or Province [12]

SV

21.10

426

Data Field: Country or Region [12]

SV

21.10

427

Data Field: Postal Code [12]

SV

21.10

428-429
42A

Reserved
Property: Location [12]

DV

21.10

42B

Property: Location Desired Accuracy [12]NAry

21.10.1

42C-42F

Reserved

216

430

Data Field: Environmental [12]

SV

21.8

431

Data Field: Atmospheric Pressure [12]

SV

21.8

432-432
433

Reserved
Data Field: Relative Humidity [12]

SV

21.8

434

Data Field: Temperature [12]

SV

21.8

435

Data Field: Wind Direction [12]

SV

21.8

436

Data Field: Wind Speed [12]

SV

21.8

437

Data Field: Air Quality Index [30]

SV

21.8

438

Data Field: Equivalent CO2 [30]

SV

21.8

439

Data Field: Volatile Organic Compound Concentration [30]

SV

21.8

43A

Data Field: Object Presence [50]

SF

21.8

43B

Data Field: Object Proximity Range [50]

SV

21.8

43C

Data Field: Object Proximity Out of Range [50]

SF

21.8

43D-43F
440

Reserved
Property: Environmental [12]

SV

21.8

441

Property: Reference Pressure [12]

SV

21.8

442-44F
450

Reserved
Data Field: Motion [12]

DV

21.12

451

Data Field: Motion State [12]

SF

21.12

452

Data Field: Acceleration [12]

SV

21.12

453

Data Field: Acceleration Axis X [12]

SV

21.12

454

Data Field: Acceleration Axis Y [12]

SV

21.12

455

Data Field: Acceleration Axis Z [12]

SV

21.12

456

Data Field: Angular Velocity [12]

SV

21.12

457

Data Field: Angular Velocity about X Axis [12]

SV

21.12

458

Data Field: Angular Velocity about Y Axis [12]

SV

21.12

459

Data Field: Angular Velocity about Z Axis [12]

SV

21.12

45A

Data Field: Angular Position [12]

SV

21.12

45B

Data Field: Angular Position about X Axis [12]

SV

21.12

45C

Data Field: Angular Position about Y Axis [12]

SV

21.12

45D

Data Field: Angular Position about Z Axis [12]

SV

21.12

45E

Data Field: Motion Speed [12]

SV

21.12

45F

Data Field: Motion Intensity [12]

SV

21.12

460-46F
470

Reserved
Data Field: Orientation [12]

DV

21.13

471

Data Field: Heading [12]

SV

21.13

472

Data Field: Heading X Axis [12]

SV

21.13

473

Data Field: Heading Y Axis [12]

SV

21.13

474

Data Field: Heading Z Axis [12]

SV

21.13

217

475

Data Field: Heading Compensated Magnetic North [12]

SV

21.13

476

Data Field: Heading Compensated True North [12]

SV

21.13

477

Data Field: Heading Magnetic North [12]

SV

21.13

478

Data Field: Heading True North [12]

SV

21.13

479

Data Field: Distance [12]

SV

21.13

47A

Data Field: Distance X Axis [12]

SV

21.13

47B

Data Field: Distance Y Axis [12]

SV

21.13

47C

Data Field: Distance Z Axis [12]

SV

21.13

47D

Data Field: Distance Out-of-Range [12]

SF

21.13

47E

Data Field: Tilt [12]

SV

21.13

47F

Data Field: Tilt X Axis [12]

SV

21.13

480

Data Field: Tilt Y Axis [12]

SV

21.13

481

Data Field: Tilt Z Axis [12]

SV

21.13

482

Data Field: Rotation Matrix [12]

SV

21.13

483

Data Field: Quaternion [12]

SV

21.13

484

Data Field: Magnetic Flux [12]

SV

21.13

485

Data Field: Magnetic Flux X Axis [12]

SV

21.13

486

Data Field: Magnetic Flux Y Axis [12]

SV

21.13

487

Data Field: Magnetic Flux Z Axis [12]

SV

21.13

488

Data Field: Magnetometer Accuracy [12]NAry

21.13.1

489

Data Field: Simple Orientation Direction [30]NAry

21.13.2

48A-48F
490

Reserved
Data Field: Mechanical [12]

DV

21.11

491

Data Field: Boolean Switch State [12]

SF

21.11

492

Data Field: Boolean Switch Array States [12]

SV

21.11

493

Data Field: Multivalue Switch Value [12]

SV

21.11

494

Data Field: Force [12]

SV

21.11

495

Data Field: Absolute Pressure [12]

SV

21.11

496

Data Field: Gauge Pressure [12]

SV

21.11

497

Data Field: Strain [12]

SV

21.11

498

Data Field: Weight [12]

SV

21.11

499-49F
4A0

Reserved
Property: Mechanical [12]

DV

21.11

4A1

Property: Vibration State [12]

DF

21.11

4A2

Property: Forward Vibration Speed [12]

DV

21.11

4A3

Property: Backward Vibration Speed [12]

DV

21.11

4A4-4AF
4B0

Reserved
Data Field: Biometric [12]

DV

21.6

4B1

Data Field: Human Presence [12]

SF

21.6

218

4B2

Data Field: Human Proximity Range [12]

SV

21.6

4B3

Data Field: Human Proximity Out of Range [12]

SF

21.6

4B4

Data Field: Human Touch State [12]

SF

21.6

4B5

Data Field: Blood Pressure [12]

SV

21.6

4B6

Data Field: Blood Pressure Diastolic [30]

SV

21.6

4B7

Data Field: Blood Pressure Systolic [30]

SV

21.6

4B8

Data Field: Heart Rate [30]

SV

21.6

4B9

Data Field: Resting Heart Rate [30]

SV

21.6

4BA

Data Field: Heartbeat Interval [30]

SV

21.6

4BB

Data Field: Respiratory Rate [30]

SV

21.6

4BC

Data Field: SpO2 [30]

SV

21.6

4BD-4CF
4D0

Reserved
Data Field: Light [12]

DV

21.9

4D1

Data Field: Illuminance [12]

SV

21.9

4D2

Data Field: Color Temperature [12]

SV

21.9

4D3

Data Field: Chromaticity [12]

SV

21.9

4D4

Data Field: Chromaticity X [12]

SV

21.9

4D5

Data Field: Chromaticity Y [12]

SV

21.9

4D6

Data Field: Consumer IR Sentence Receive [12]

SV

21.9

4D7

Data Field: Infrared Light [30]

SV

21.9

4D8

Data Field: Red Light [30]

SV

21.9

4D9

Data Field: Green Light [30]

SV

21.9

4DA

Data Field: Blue Light [30]

SV

21.9

4DB

Data Field: Ultraviolet A Light [30]

SV

21.9

4DC

Data Field: Ultraviolet B Light [30]

SV

21.9

4DD

Data Field: Ultraviolet Index [30]

SV

21.9

4DE

Data Field: Near Infrared Light [50]

SV

21.9

4DF

Property: Light [12]

DV

21.9

4E0

Property: Consumer IR Sentence Send [12]

DV

21.9

4E1-4E1
4E2

Reserved
Property: Auto Brightness Preferred [50]

DF

21.9

4E3

Property: Auto Color Preferred [50]

DF

21.9

4E4-4EF
4F0

Reserved
Data Field: Scanner [12]

DV

21.14

4F1

Data Field: RFID Tag 40 Bit [12]

SV

21.14

4F2

Data Field: NFC Sentence Receive [12]

SV

21.14

4F3-4F7
4F8

Reserved
Property: Scanner [12]

DV

21.14

4F9

Property: NFC Sentence Send [12]

SV

21.14

219

4FA-4FF
500

Reserved
Data Field: Electrical [12]

SV

21.7

501

Data Field: Capacitance [12]

SV

21.7

502

Data Field: Current [12]

SV

21.7

503

Data Field: Electrical Power [12]

SV

21.7

504

Data Field: Inductance [12]

SV

21.7

505

Data Field: Resistance [12]

SV

21.7

506

Data Field: Voltage [12]

SV

21.7

507

Data Field: Frequency [12]

SV

21.7

508

Data Field: Period [12]

SV

21.7

509

Data Field: Percent of Range [12]

SV

21.7

50A-51F
520

Reserved
Data Field: Time [12]

DV

21.15

521

Data Field: Year [12]

SV

21.15

522

Data Field: Month [12]

SV

21.15

523

Data Field: Day [12]

SV

21.15

524

Data Field: Day of Week [12]NAry

21.15.1

525

Data Field: Hour [12]

SV

21.15

526

Data Field: Minute [12]

SV

21.15

527

Data Field: Second [12]

SV

21.15

528

Data Field: Millisecond [12]

SV

21.15

529

Data Field: Timestamp [12]

SV

21.15

52A

Data Field: Julian Day of Year [12]

SV

21.15

52B

Data Field: Time Since System Boot [30]

SV

21.15

52C-52F
530

Reserved
Property: Time [12]

DV

21.15

531

Property: Time Zone Offset from UTC [12]

DV

21.15

532

Property: Time Zone Name [12]

DV

21.15

533

Property: Daylight Savings Time Observed [12]

DF

21.15

534

Property: Time Trim Adjustment [12]

DV

21.15

535

Property: Arm Alarm [12]

DF

21.15

536-53F
540

Reserved
Data Field: Custom [12]

DV

21.16

541

Data Field: Custom Usage [12]

SV

21.16

542

Data Field: Custom Boolean Array [12]

SV

21.16

543

Data Field: Custom Value [12]

SV

21.16

544

Data Field: Custom Value 1 [12]

SV

21.16

545

Data Field: Custom Value 2 [12]

SV

21.16

546

Data Field: Custom Value 3 [12]

SV

21.16

220

547

Data Field: Custom Value 4 [12]

SV

21.16

548

Data Field: Custom Value 5 [12]

SV

21.16

549

Data Field: Custom Value 6 [12]

SV

21.16

54A

Data Field: Custom Value 7 [30]

SV

21.16

54B

Data Field: Custom Value 8 [30]

SV

21.16

54C

Data Field: Custom Value 9 [30]

SV

21.16

54D

Data Field: Custom Value 10 [30]

SV

21.16

54E

Data Field: Custom Value 11 [30]

SV

21.16

54F

Data Field: Custom Value 12 [30]

SV

21.16

550

Data Field: Custom Value 13 [30]

SV

21.16

551

Data Field: Custom Value 14 [30]

SV

21.16

552

Data Field: Custom Value 15 [30]

SV

21.16

553

Data Field: Custom Value 16 [30]

SV

21.16

554

Data Field: Custom Value 17 [30]

SV

21.16

555

Data Field: Custom Value 18 [30]

SV

21.16

556

Data Field: Custom Value 19 [30]

SV

21.16

557

Data Field: Custom Value 20 [30]

SV

21.16

558

Data Field: Custom Value 21 [30]

SV

21.16

559

Data Field: Custom Value 22 [30]

SV

21.16

55A

Data Field: Custom Value 23 [30]

SV

21.16

55B

Data Field: Custom Value 24 [30]

SV

21.16

55C

Data Field: Custom Value 25 [30]

SV

21.16

55D

Data Field: Custom Value 26 [30]

SV

21.16

55E

Data Field: Custom Value 27 [30]

SV

21.16

55F

Data Field: Custom Value 28 [30]

SV

21.16

560

Data Field: Generic [12]

DV

21.18

561

Data Field: Generic GUID or PROPERTYKEY [12]

SV

21.18

562

Data Field: Generic Category GUID [12]

SV

21.18

563

Data Field: Generic Type GUID [12]

SV

21.18

564

Data Field: Generic Event PROPERTYKEY [12]

SV

21.18

565

Data Field: Generic Property PROPERTYKEY [12]

SV

21.18

566

Data Field: Generic Data Field PROPERTYKEY [12]

SV

21.18

567

Data Field: Generic Event [12]

SV

21.18

568

Data Field: Generic Property [12]

SV

21.18

569

Data Field: Generic Data Field [12]

SV

21.18

56A

Data Field: Enumerator Table Row Index [12]

SV

21.18

56B

Data Field: Enumerator Table Row Count [12]

SV

21.18

56C

Data Field: Generic GUID or PROPERTYKEY kind [12]NAry

21.18.1

221

56D

Data Field: Generic GUID [12]

SV

21.18

56E

Data Field: Generic PROPERTYKEY [12]

SV

21.18

56F

Data Field: Generic Top Level Collection ID [12]

SV

21.18

570

Data Field: Generic Report ID [12]

SV

21.18

571

Data Field: Generic Report Item Position Index [12]

SV

21.18

572

Data Field: Generic Firmware VARTYPE [12]NAry

21.18.2

573

Data Field: Generic Unit of Measure [12]NAry

21.18.3

574

Data Field: Generic Unit Exponent [12]NAry

21.18.4

575

Data Field: Generic Report Size [12]

SV

21.18

576

Data Field: Generic Report Count [12]

SV

21.18

577-57F
580

Reserved
Property: Generic [12]

DV

21.18

581

Property: Enumerator Table Row Index [12]

DV

21.18

582

Property: Enumerator Table Row Count [12]

SV

21.18

583-58F
590

Reserved
Data Field: Personal Activity [30]

DV

21.19

591

Data Field: Activity Type [30]NAry

21.19.1

592

Data Field: Activity State [30]NAry

21.19.2

593

Data Field: Device Position [30]NAry

21.19.3

594

Data Field: Step Count [30]

SV

21.19

595

Data Field: Step Count Reset [30]

DF

21.19

596

Data Field: Step Duration [30]

SV

21.19

597

Data Field: Step Type [30]NAry

21.19.4

598-59F
5A0

Reserved
Property: Minimum Activity Detection Interval [30]

DV

21.19

5A1

Property: Supported Activity Types [30]

NAry

21.19

5A2

Property: Subscribed Activity Types [30]

NAry

21.19

5A3

Property: Supported Step Types [30]

NAry

21.19

5A4

Property: Subscribed Step Types [30]

NAry

21.19

5A5

Property: Floor Height [30]

DV

21.19

5A6-5AF
5B0

Reserved
Data Field: Custom Type ID [30]

SV

21.16

5B1-5BF
5C0

Reserved
Property: Custom [50]

DV

21.17

5C1

Property: Custom Value 1 [50]

DV

21.17

5C2

Property: Custom Value 2 [50]

DV

21.17

5C3

Property: Custom Value 3 [50]

DV

21.17

5C4

Property: Custom Value 4 [50]

DV

21.17

5C5

Property: Custom Value 5 [50]

DV

21.17

222

5C6

Property: Custom Value 6 [50]

DV

21.17

5C7

Property: Custom Value 7 [50]

DV

21.17

5C8

Property: Custom Value 8 [50]

DV

21.17

5C9

Property: Custom Value 9 [50]

DV

21.17

5CA

Property: Custom Value 10 [50]

DV

21.17

5CB

Property: Custom Value 11 [50]

DV

21.17

5CC

Property: Custom Value 12 [50]

DV

21.17

5CD

Property: Custom Value 13 [50]

DV

21.17

5CE

Property: Custom Value 14 [50]

DV

21.17

5CF

Property: Custom Value 15 [50]

DV

21.17

5D0

Property: Custom Value 16 [50]

DV

21.17

5D1-5DF
5E0

Reserved
Data Field: Hinge [59]SV/DV

21.20.1

5E1

Data Field: Hinge Angle [59]SV/DV

21.20.1

5E2-5EF
5F0

Reserved
Data Field: Gesture Sensor [60]DV

21.20.2.3

5F1

Data Field: Gesture State [60]NAry

21.20.2.4

5F2

Data Field: Hinge Fold Initial Angle [60]SV

21.20.2.3

5F3

Data Field: Hinge Fold Final Angle [60]SV

21.20.2.3

5F4

Data Field: Hinge Fold Contributing Panel [60]NAry

21.20.2.5

5F5

Data Field: Hinge Fold Type [60]NAry

21.20.2.6

5F6-7FF
800

Reserved
Sensor State: Undefined [12]

Sel

21.3

801

Sensor State: Ready [12]

Sel

21.3

802

Sensor State: Not Available [12]

Sel

21.3

803

Sensor State: No Data [12]

Sel

21.3

804

Sensor State: Initializing [12]

Sel

21.3

805

Sensor State: Access Denied [12]

Sel

21.3

806

Sensor State: Error [12]

Sel

21.3

807-80F
810

Reserved
Sensor Event: Unknown [12]

Sel

21.4

811

Sensor Event: State Changed [12]

Sel

21.4

812

Sensor Event: Property Changed [12]

Sel

21.4

813

Sensor Event: Data Updated [12]

Sel

21.4

814

Sensor Event: Poll Response [12]

Sel

21.4

815

Sensor Event: Change Sensitivity [12]

Sel

21.4

816

Sensor Event: Range Maximum Reached [12]

Sel

21.4

817

Sensor Event: Range Minimum Reached [12]

Sel

21.4

818

Sensor Event: High Threshold Cross Upward [12]

Sel

21.4

223

819

Sensor Event: High Threshold Cross Downward [12]

Sel

21.4

81A

Sensor Event: Low Threshold Cross Upward [12]

Sel

21.4

81B

Sensor Event: Low Threshold Cross Downward [12]

Sel

21.4

81C

Sensor Event: Zero Threshold Cross Upward [12]

Sel

21.4

81D

Sensor Event: Zero Threshold Cross Downward [12]

Sel

21.4

81E

Sensor Event: Period Exceeded [12]

Sel

21.4

81F

Sensor Event: Frequency Exceeded [12]

Sel

21.4

820

Sensor Event: Complex Trigger [12]

Sel

21.4

821-82F
830

Reserved
Connection Type: PC Integrated [12]Sel

21.5.1

831

Connection Type: PC Attached [12]Sel

21.5.1

832

Connection Type: PC External [12]Sel

21.5.1

833-83F
840

Reserved
Reporting State: Report No Events [12]Sel

21.5.2841

Reporting State: Report All Events [12]Sel

21.5.2

842

Reporting State: Report Threshold Events [12]Sel

21.5.2

843

Reporting State: Wake On No Events [12]Sel

21.5.2

844

Reporting State: Wake On All Events [12]Sel

21.5.2845

Reporting State: Wake On Threshold Events [12]Sel

21.5.2846-84F
850

Reserved
Power State: Undefined [12]Sel

21.5.3851

Power State: D0 Full Power [12]Sel

21.5.3852

Power State: D1 Low Power [12]Sel

21.5.3853

Power State: D2 Standby Power with Wakeup [12]Sel

21.5.3854

Power State: D3 Sleep with Wakeup [12]Sel

21.5.3855

Power State: D4 Power Off [12]Sel

21.5.3856-86F
870

Reserved
Fix Quality: No Fix [12]Sel

21.10.2

871

Fix Quality: GPS [12]Sel

21.10.2

872

Fix Quality: DGPS [12]Sel

21.10.2

873-87F
880

Reserved
Fix Type: No Fix [12]Sel

21.10.3

881

Fix Type: GPS SPS Mode, Fix Valid [12]Sel

21.10.3

882

Fix Type: DGPS SPS Mode, Fix Valid [12]Sel

21.10.3

883

Fix Type: GPS PPS Mode, Fix Valid [12]Sel

21.10.3

884

Fix Type: Real Time Kinematic [12]Sel

21.10.3

885

Fix Type: Float RTK [12]Sel

21.10.3

886

Fix Type: Estimated (dead reckoned) [12]Sel

21.10.3

887

Fix Type: Manual Input Mode [12]Sel

21.10.3

224

888

Fix Type: Simulator Mode [12]Sel

21.10.3

889-88F
890

Reserved
GPS Operation Mode: Manual [12]Sel

21.10.4

891

GPS Operation Mode: Automatic [12]Sel

21.10.4

892-89F
8A0

Reserved
GPS Selection Mode: Autonomous [12]Sel

21.10.5

8A1

GPS Selection Mode: DGPS [12]Sel

21.10.5

8A2

GPS Selection Mode: Estimated (dead reckoned) [12]Sel

21.10.5

8A3

GPS Selection Mode: Manual Input [12]Sel

21.10.5

8A4

GPS Selection Mode: Simulator [12]Sel

21.10.5

8A5

GPS Selection Mode: Data Not Valid [12]Sel

21.10.5

8A6-8AF
8B0

Reserved
GPS Status Data: Valid [12]Sel

21.10.6

8B1

GPS Status Data: Not Valid [12]Sel

21.10.6

8B2-85F
860

Reserved
Accuracy: Default [12]Sel

21.10.1

861

Accuracy: High [12]Sel

21.10.1

862

Accuracy: Medium [12]Sel

21.10.1

863

Accuracy: Low [12]Sel

21.10.1

864-8BF
8C0

Reserved
Day of Week: Sunday [12]Sel

21.15.1

8C1

Day of Week: Monday [12]Sel

21.15.1

8C2

Day of Week: Tuesday [12]Sel

21.15.1

8C3

Day of Week: Wednesday [12]Sel

21.15.1

8C4

Day of Week: Thursday [12]Sel

21.15.1

8C5

Day of Week: Friday [12]Sel

21.15.1

8C6

Day of Week: Saturday [12]Sel

21.15.1

8C7-8CF
8D0

Reserved
Kind: Category [12]Sel

21.18.1

8D1

Kind: Type [12]Sel

21.18.1

8D2

Kind: Event [12]Sel

21.18.1

8D3

Kind: Property [12]Sel

21.18.1

8D4

Kind: Data Field [12]Sel

21.18.1

8D5-8DF
8E0

Reserved
Magnetometer Accuracy: Low [12]Sel

21.13.1

8E1

Magnetometer Accuracy: Medium [12]Sel

21.13.1

8E2

Magnetometer Accuracy: High [12]Sel

21.13.1

8E3-8EF
8F0

Reserved
Simple Orientation Direction: Not Rotated [30]Sel

21.13.2

8F1

Simple Orientation Direction: Rotated 90 Degrees CCW [30]Sel

21.13.2

225

8F2

Simple Orientation Direction: Rotated 180 Degrees CCW [30]Sel

21.13.2

8F3

Simple Orientation Direction: Rotated 270 Degrees CCW [30]Sel

21.13.2

8F4

Simple Orientation Direction: Face Up [30]Sel

21.13.2

8F5

Simple Orientation Direction: Face Down [30]Sel

21.13.2

8F6-8FF
900

Reserved
VT_NULL [12]Sel

21.18.2

901

VT_BOOL [12]Sel

21.18.2

902

VT_UI1 [12]Sel

21.18.2

903

VT_I1 [12]Sel

21.18.2

904

VT_UI2 [12]Sel

21.18.2

905

VT_I2 [12]Sel

21.18.2

906

VT_UI4 [12]Sel

21.18.2

907

VT_I4 [12]Sel

21.18.2

908

VT_UI8 [12]Sel

21.18.2909

VT_I8 [12]Sel

21.18.2

90A

VT_R4 [12]Sel

21.18.2

90B

VT_R8 [12]Sel

21.18.2

90C

VT_WSTR [12]Sel

21.18.2

90D

VT_STR [12]Sel

21.18.2

90E

VT_CLSID [12]Sel

21.18.2

90F

VT_VECTOR VT_UI1 [12]Sel

21.18.2

910

VT_F16E0 [12]Sel

21.18.2

911

VT_F16E1 [12]Sel

21.18.2

912

VT_F16E2 [12]Sel

21.18.2

913

VT_F16E3 [12]Sel

21.18.2

914

VT_F16E4 [12]Sel

21.18.2

915

VT_F16E5 [12]Sel

21.18.2

916

VT_F16E6 [12]Sel

21.18.2

917

VT_F16E7 [12]Sel

21.18.2

918

VT_F16E8 [12]Sel

21.18.2

919

VT_F16E9 [12]Sel

21.18.2

91A

VT_F16EA [12]Sel

21.18.2

91B

VT_F16EB [12]Sel

21.18.2

91C

VT_F16EC [12]Sel

21.18.2

91D

VT_F16ED [12]Sel

21.18.2

91E

VT_F16EE [12]Sel

21.18.2

91F

VT_F16EF [12]Sel

21.18.2

920

VT_F32E0 [12]Sel

21.18.2

921

VT_F32E1 [12]Sel

21.18.2

226922

VT_F32E2 [12]Sel

21.18.2

923

VT_F32E3 [12]Sel

21.18.2

924

VT_F32E4 [12]Sel

21.18.2

925

VT_F32E5 [12]Sel

21.18.2

926

VT_F32E6 [12]Sel

21.18.2

927

VT_F32E7 [12]Sel

21.18.2

928

VT_F32E8 [12]Sel

21.18.2

929

VT_F32E9 [12]Sel

21.18.2

92A

VT_F32EA [12]Sel

21.18.2

92B

VT_F32EB [12]Sel

21.18.2

92C

VT_F32EC [12]Sel

21.18.2

92D

VT_F32ED [12]Sel

21.18.2

92E

VT_F32EE [12]Sel

21.18.2

92F

VT_F32EF [12]Sel

21.18.2

930

Activity Type: Unknown [30]Sel

21.19.1

931

Activity Type: Stationary [30]Sel

21.19.1

932

Activity Type: Fidgeting [30]Sel

21.19.1

933

Activity Type: Walking [30]Sel

21.19.1

934

Activity Type: Running [30]Sel

21.19.1

935

Activity Type: In Vehicle [30]Sel

21.19.1

936

Activity Type: Biking [30]Sel

21.19.1

937

Activity Type: Idle [30]Sel

21.19.1

938-93F
940

Reserved
Unit: Not Specified [12]Sel

21.18.3

941

Unit: Lux [12]Sel

21.18.3

942

Unit: Degrees Kelvin [12]Sel

21.18.3

943

Unit: Degrees Celsius [12]Sel

21.18.3

944

Unit: Pascal [12]Sel

21.18.3

945

Unit: Newton [12]Sel

21.18.3

946

Unit: Meters/Second [12]Sel

21.18.3

947

Unit: Kilogram [12]Sel

21.18.3

948

Unit: Meter [12]Sel

21.18.3

949

Unit: Meters/Second/Second [12]Sel

21.18.3

94A

Unit: Farad [12]Sel

21.18.3

94B

Unit: Ampere [12]Sel

21.18.3

94C

Unit: Watt [12]Sel

21.18.3

94D

Unit: Henry [12]Sel

21.18.3

94E

Unit: Ohm [12]Sel

21.18.3

94F

Unit: Volt [12]Sel

21.18.3

227

950

Unit: Hertz [12]Sel

21.18.3

951

Unit: Bar [12]Sel

21.18.3

952

Unit: Degrees Anti-clockwise [12]Sel

21.18.3

953

Unit: Degrees Clockwise [12]Sel

21.18.3

954

Unit: Degrees [12]Sel

21.18.3

955

Unit: Degrees/Second [12]Sel

21.18.3

956

Unit: Degrees/Second/Second [12]Sel

21.18.3

957

Unit: Knot [12]Sel

21.18.3

958

Unit: Percent [12]Sel

21.18.3

959

Unit: Second [12]Sel

21.18.3

95A

Unit: Millisecond [12]Sel

21.18.3

95B

Unit: G [12]Sel

21.18.3

95C

Unit: Bytes [12]Sel

21.18.3

95D

Unit: Milligauss [12]Sel

21.18.3

95E

Unit: Bits [12]Sel

21.18.3

95F-95F
960

Reserved
Activity State: No State Change [30]Sel

21.19.2

961

Activity State: Start Activity [30]Sel

21.19.2

962

Activity State: End Activity [30]Sel

21.19.2

963-96F
970

Reserved
Exponent 0 [12]Sel

21.18.4

971

Exponent 1 [12]Sel

21.18.4

972

Exponent 2 [12]Sel

21.18.4

973

Exponent 3 [12]Sel

21.18.4

974

Exponent 4 [12]Sel

21.18.4

975

Exponent 5 [12]Sel

21.18.4

976

Exponent 6 [12]Sel

21.18.4

977

Exponent 7 [12]Sel

21.18.4

978Exponent 8 [12]Sel

21.18.4

979

Exponent 9 [12]Sel

21.18.4

97A

Exponent A [12]Sel

21.18.4

97B

Exponent B [12]Sel

21.18.4

97C

Exponent C [12]Sel

21.18.4

97D

Exponent D [12]Sel

21.18.4

97E

Exponent E [12]Sel

21.18.4

97F

Exponent F [12]Sel

21.18.4

980

Device Position: Unknown [30]Sel

21.19.3

981

Device Position: Unchanged [30]Sel

21.19.3

982

Device Position: On Desk [30]Sel

21.19.3228

983

Device Position: In Hand [30]Sel

21.19.3

984

Device Position: Moving in Bag [30]Sel

21.19.3

985

Device Position: Stationary in Bag [30]Sel

21.19.3

986-98F
990

Reserved
Step Type: Unknown [30]Sel

21.19.4

991

Step Type: Running [30]Sel

21.19.4

992

Step Type: Walking [30]Sel

21.19.4

993-99F
9A0

Reserved
Gesture State: Unknown [60]Sel

21.20.2.4

9A1

Gesture State: Started [60]Sel

21.20.2.4

9A2

Gesture State: Completed [60]Sel

21.20.2.4

9A3

Gesture State: Cancelled [60]Sel

21.20.2.4

9A4-9AF
9B0

Reserved
Hinge Fold Contributing Panel: Unknown [60]Sel

21.20.2.5

9B1

Hinge Fold Contributing Panel: Panel 1 [60]Sel

21.20.2.5

9B2

Hinge Fold Contributing Panel: Panel 2 [60]Sel

21.20.2.5

9B3

Hinge Fold Contributing Panel: Both [60]Sel

21.20.2.5

9B4

Hinge Fold Type: Unknown [60]Sel

21.20.2.6

9B5

Hinge Fold Type: Increasing [60]Sel

21.20.2.6

9B6

Hinge Fold Type: Decreasing [60]Sel

21.20.2.6

9B7-FFF
1000

Reserved
Modifier: Change Sensitivity Absolute [12]

US

21.2

1001-10FF
1100-17FF

Reserved
Reserved for use as Change Sensitivity Absolute modifier range

1800-1FFF
2000

Reserved
Modifier: Maximum [12]

US

21.2

2001-20FF
2100-27FF

Reserved
Reserved for use as Maximum modifier range

2800-2FFF
3000

Reserved
Modifier: Minimum [12]

US

21.2

3001-30FF
3100-37FF

Reserved
Reserved for use as Minimum modifier range

3800-3FFF
4000

Reserved
Modifier: Accuracy [12]

US

21.2

4001-40FF
4100-47FF

Reserved
Reserved for use as Accuracy modifier range

4800-4FFF
5000

Reserved
Modifier: Resolution [12]

US

21.2

5001-50FF
5100-57FF

Reserved
Reserved for use as Resolution modifier range

5800-5FFF

Reserved

229

6000

Modifier: Threshold High [12]6001-60FF
6100-67FF

Reserved
Reserved for use as Threshold High modifier range

6800-6FFF
7000

Reserved
Modifier: Threshold Low [12]7001-70FF
7100-77FF

Reserved
Reserved for use as Threshold Low modifier range

7800-7FFF
8000

Reserved
Modifier: Calibration Offset [12]8001-80FF
8100-87FF

Reserved
Reserved for use as Calibration Offset modifier range

8800-8FFF
9000

Reserved
Modifier: Calibration Multiplier [12]9001-90FF
9100-97FF

Reserved
Reserved for use as Calibration Multiplier modifier range

9800-9FFF
A000

Reserved
Modifier: Report Interval [12]A001-A0FF
A100-A7FF

Reserved
Reserved for use as Report Interval modifier range

A800-AFFF
B000

Reserved
Modifier: Frequency Max [12]B001-B0FF
B100-B7FF

Reserved
Reserved for use as Frequency Max modifier range

B800-BFFF
C000

Reserved
Modifier: Period Max [12]C001-C0FF
C100-C7FF

Reserved
Reserved for use as Period Max modifier range

C800-CFFF
D000

Reserved
Modifier: Change Sensitivity Percent of Range [12]D001-D0FF
D100-D7FF

Reserved
Reserved for use as Change Sensitivity Percent modifier range

D800-DFFF
E000

Reserved
Modifier: Change Sensitivity Percent Relative [12]E001-E0FF
E100-E7FF

Reserved
Reserved for use as Change Sensitivity Percent modifier range

E800-EFFF
F000

Reserved
Modifier: Vendor Reserved [12]F001-F0FF
F100-F7FF

Reserved
Reserved for use as Vendor Reserved modifier range

F800-FFFF

Reserved
Table 21.1: Sensors Page

230

US

21.2

US

21.2

US

21.2

US

21.2

US

21.2

US

21.2

US

21.2

US

21.2

US

21.2

US

21.2

21.1

Sensor Device Usages

Usage Name

Usage Type

Description

SensorCA/CP

An application-level or physical collection that identifies a device
that aggregates one or more sensors on one sensor board; forexample, a sensor hub.

Biometric

CA/CP

Biometric: Blood Pressure

CA/CP

Biometric: Body
Temperature

CA/CP

An application-level or physical collection that identifies a device
that detects biometric information.
An application-level or physical collection that identifies a device
that measures the systolic/diastolic blood pressure of the deviceuser.
An application-level or physical collection that identifies a device
that measures temperature where the temperature source is alocation on the device user’s body.

Biometric: Heart Rate

CA/CP

Biometric: Heart Rate
Variability

CA/CP

Biometric: Human
Presence

CA/CP

Biometric: Human
Proximity

CA/CP

An application-level or physical collection that identifies a device
that detects human proximity (range of values).

Biometric: Human Touch

CA/CP

Biometric: Peripheral
Oxygen Saturation

CA/CP

An application-level or physical collection that identifies a device
that registers human touch. This is not to be confused withsingle-touch or multi-touch digitizers that provide finger position
coordinates.
An application-level or physical collection that identifies a device
that measures the peripheral oxygen saturation (SpO2) as apercentage of the hemoglobin in the device user’s blood whichcontains oxygen.

Biometric: Respiratory
Rate

CA/CP

An application-level or physical collection that identifies a device
that measures the respiratory rate (number of breaths taken overtime) of the device user.

Electrical

CA/CPElectrical: Capacitance

CA/CP

An application-level or physical collection that identifies a device
that measures electrical information.
An application-level or physical collection that identifies a device
that measures electrical capacitance.

Electrical: Current

CA/CP

An application-level or physical collection that identifies a device
that measures electrical current, such as an ammeter.

Electrical: Frequency

CA/CP

An application-level or physical collection that identifies a device
that measures electrical frequency, such as a frequency meter.

Electrical: Period

CA/CP

An application-level or physical collection that identifies a device
that measures electrical period, such as a period meter.

Electrical: Potentiometer

CA/CP

An application-level or physical collection that identifies a device
that measures percent of range, such as a potentiometer.

Electrical: Power

CA/CP

An application-level or physical collection that identifies a device
that measures electrical power, such as a wattmeter.

An application-level or physical collection that identifies a device
that measures the heart rate of the device user.
An application-level or physical collection that identifies a device
that measures the variation in the time interval between heartbeatsof the device user.
An application-level or physical collection that identifies a device
that detects human presence (Boolean yes or no).

231

Electrical: Inductance

CA/CP

An application-level or physical collection that identifies a device
that measures electrical inductance.
An application-level or physical collection that identifies a device
that measures electrical resistance, such as an ohmmeter or apotentiometer.

Electrical: Resistance

CA/CPElectrical: Voltage

CA/CP

An application-level or physical collection that identifies a device
that measures electrical voltage, such as a voltmeter.

Environmental

CA/CP

Environmental: Air Quality

CA/CP

An application-level or physical collection that identifies a device
that measures environmental information.
An application-level or physical collection that identifies a device
that measures the amount of pollutants in the air.

Environmental:
Atmospheric Pressure

CA/CP

An application-level or physical collection that identifies a device
that measures atmospheric pressure, such as a barometer.

Environmental: Heat Index

CA/CP

An application-level or physical collection that identifies a device
that measures the human-perceived temperature based on thecurrent humidity and air temperature levels.

Environmental; Humidity

CA/CP

An application-level or physical collection that identifies a device
that measures humidity, such as a hygrometer.

Environmental: Object
Presence

CA/CP

An application-level of physical collection that identifies a device
that detects object presence (Boolean yes or no).

Environmental: Object
Proximity

CA/CP

An application-level or physical collection that identifies a device
that detects object proximity (range of values).

Environmental: Surface
Temperature

CA/CP

An application-level or physical collection that identifies a device
that measures the temperature of a surface which the device iscurrently in contact with.

Environmental:
Temperature

CA/CP

An application-level or physical collection that identifies a
device that measures temperature, such as a thermometer or athermocouple. This sensor’s temperature source primarily is theambient air (see Biometric: Body Temperature and Environmental:
Surface Temperature for other temperature sensor types).

Environmental: Volatile
Organic Compounds

CA/CP

An application-level or physical collection that identifies a device
that measures the amount of volatile organic compounds in the air.

Environmental: Wind
Direction

CA/CP

An application-level or physical collection that identifies a device
that measures wind direction, such as a weather vane.

Environmental: Wind
Speed

CA/CP

An application-level or physical collection that identifies a device
that measures wind speed, such as an anemometer.

GestureCA/CP

An application-level of physical collection that identifies a sensor
that can detect system physical manipulation gesture by an external
agent.

Gesture: Chassis Flip
GestureCA/CP

An application-level or physical collection that identifies a sensor
that can detect chassis flip gesture of a system. see Section
21.20.2.1 Chassis Flip Gesture

Gesture: Hinge Fold
Gesture

CA/CP

Light

CA/CP

An application-level or physical collection that identifies a sensor
that can detect a hinge fold gesture. see Section 21.20.2.2 Hinge
Fold Gesture
An application-level or physical collection that identifies a device
that measures light information.

232

Light: Ambient Light

CA/CP

An application-level or physical collection that identifies a device
that detects ambient light.

Light: Consumer Infrared

CA/CP

An application-level or physical collection that identifies a device
that can transmit and receive Consumer Infrared signals, e.g., forcontrolling TVs and stereo equipment.

Light: Infrared Light

CA/CP

An application-level or physical collection that identifies a device
that measures levels of infrared light (wavelengths of approximately
700nm to 1mm on the electromagnetic spectrum).

Light: Visible Light

CA/CP

An application-level or physical collection that identifies a device
that measures levels of visible light (wavelengths of approximately
390nm to 700nm on the electromagnetic spectrum).

Light: Ultraviolet Light

CA/CP

An application-level or physical collection that identifies a
device that measures levels of Ultraviolet light (wavelengths ofapproximately 10nm to 390nm on the electromagnetic spectrum).

Location

CA/CP

An application-level or physical collection that identifies a device
that can report location information.

Location: Broadcast

CA/CP

An application-level or physical collection that identifies a device
that detect location information using transmissions such as
television or radio frequencies (for example, cellular telephone).

Location: Dead Reckoning

CA/CP

An application-level or physical collection that identifies a virtual
device that calculates the current location using aggregated motion
data from multiple physical sensors (such as GPS, accelerometer,gyro, compass, altimeter).

Location: GPS (Global
Positioning System)

CA/CP

An application-level or physical collection that identifies a device
that detects the current location using the GPS (Global Positioning
Satellite) system.

Location: Lookup

CA/CP

Location: Other

CA/CP

An application-level or physical collection that identifies a device
that detects the current location using the computers current IP
Address.
An application-level or physical collection that identifies a device
that detects the current location using other means.

Location: Static

CA/CP

An application-level or physical collection that identifies a device
that use end-user provided information such as Civic Address toreport the current location.

Location: Triangulation

CA/CP

An application-level or physical collection that identifies a device
that detects the current location using triangulation techniques,
such as cellular phone tower proximities.

Mechanical

CA/CP

An application-level or physical collection that identifies a device
that can report mechanical information.

Mechanical: Boolean Switch

CA/CP

Mechanical: Boolean Switch
Array

CA/CP

An application-level or physical collection that identifies a device
that can switch between two states: on and off.
An application-level or physical collection that identifies an arrayof devices each of which can switch between two states: on and off.

Mechanical: Multivalue
SwitchCA/CP

An application-level or physical collection that identifies a device
that can switch between multiple states.

Mechanical: Force

CA/CP

An application-level or physical collection that identifies a device
that measures force.

233

Mechanical: Pressure

CA/CP

An application-level or physical collection that identifies a device
that measures pressure.

Mechanical: Strain

CA/CP

Mechanical: Weight

CA/CP

An application-level or physical collection that identifies a device
that measures strain.
An application-level or physical collection that identifies a device
that measures weight.

Mechanical: Haptic
Vibrator

CA/CP

An application-level or physical collection that identifies a vibrator
device that can provide Haptic feedback.

Mechanical: Hall EffectSwitchCA/CP

An application-level or physical collection that identifies a Hall
Effect (magnetic proximity) detector switch.

MotionCA/CP

Motion: Accelerometer 1D

CA/CP

An application-level or physical collection that identifies a device
that measures motion information.
An application-level or physical collection that identifies a device
that measures acceleration along 1 axis.

Motion: Accelerometer 2D

CA/CP

An application-level or physical collection that identifies a device
that measures acceleration along 2 axes.

Motion: Accelerometer 3D

CA/CP

An application-level or physical collection that identifies a device
that measures acceleration along 3 axes.

Motion: Gyrometer 1D

CA/CP

An application-level or physical collection that identifies a device
that measures angular acceleration or velocity about 1 axis.

Motion: Gyrometer 2D

CA/CP

An application-level or physical collection that identifies a device
that measures angular acceleration or velocity about 2 axes.

Motion: Gyrometer 3D

CA/CP

An application-level or physical collection that identifies a device
that measures angular acceleration or velocity about 3 axes.

Motion: Motion Detector

CA/CP

An application-level or physical collection that identifies a device
that detects motion (Boolean yes or no).

Motion: Speedometer

CA/CP

An application-level or physical collection that identifies a device
that measures velocity.

Motion: Accelerometer

CA/CP

An application-level or physical collection that identifies a device
that measures acceleration along any number of axes.

Motion: Gravity Vector

CA/CP

Motion: Linear
Accelerometer

CA/CP

An application-level or physical collection that identifies a device
that measures exclusively the force of Earth’s gravity along any
number of axes.
An application-level or physical collection that identifies a device
that measures the linear acceleration (acceleration excluding theforce of Earth’s gravity) along any number of axes. Note that thisis differs from a standard accelerometer in that at rest, a standard
accelerometer displays 1g due to earth’s gravitational pull while aliner accelerometer will show 0g.

Motion: Gyrometer

CA/CP

Orientation

CA/CP

Orientation: Compass 1D

CA/CP

Orientation: Compass 2D

CA/CP

An application-level or physical collection that identifies a device
that measures angular acceleration or velocity about any numberof axes.
An application-level or physical collection that identifies a device
that measures orientation information.
An application-level or physical collection that identifies a one-axis
compass.
An application-level or physical collection that identifies a two-axis
compass.

234

Orientation: Compass 3D

CA/CP

An application-level or physical collection that identifies athree-axis compass.

Orientation: Inclinometer
1D
Orientation: Inclinometer
2D
Orientation: Inclinometer
3D
Orientation: Distance 1D

CA/CP

An application-level or physical collection that identifies a one-axis
tilt meter.
An application-level or physical collection that identifies a two-axis
tilt meter.
An application-level or physical collection that identifies athree-axis tilt meter.
An application-level or physical collection that identifies a device
that measures distance using one axis.

Orientation: Distance 2D

CA/CP

An application-level or physical collection that identifies a device
that measures distance using two axes.

Orientation: Distance 3D

CA/CP

An application-level or physical collection that identifies a device
that measures distance using three axes.

Orientation: Device
Orientation

CA/CP

An application-level or physical collection that identifies a device
that measures device orientation in three axes (typically throughthe combined use of an accelerometer and gyroscope).

Orientation: Compass

CA/CP

An application-level or physical collection that identifies a compass
with any number of axes.

Orientation: Inclinometer

CA/CP

An application-level or physical collection that identifies a tilt meterwith any number of axes.

Orientation: Distance

CA/CP

An application-level or physical collection that identifies a device
that measures distance using any number of axes.

Orientation: Relative
Orientation

CA/CP

An application-level or physical collection that identifies a device
that measures device orientation where yaw values are relative tothe starting position of the device when powered on.

Orientation: Simple
Orientation

CA/CP

An application-level or physical collection that identifies a device
that measures the orientation by assigning an enumerated type torepresent the current positional rotation of the face of the device.

Orientation: Extended:
Geomagnetic Orientation

CA/CP

An application-level or physical collection that identifies a device
that measures device orientation in three axes where yaw is relative
to Earth’s magnetic North (as opposed to true North). Notethat this sensor normally is implemented through use of only an
accelerometer and magnetometer, no gyroscope.

Orientation: Extended:
Magnetometer

CA/CP

An application-level or physical collection that identifies a device
that measures magnetic field strengths.

Other

CA/CP

An application-level or physical collection that identifies a device
that does not fit into any of the other pre-defined categories.

Other: Custom

CA/CP

An application-level or physical collection that identifies a device
that conforms to the custom sensor specification.

Other: Generic

CA/CP

An application-level or physical collection that identifies a device
that conforms to the generic sensor specification.

Other: Generic Enumerator

CA/CP

An application-level or physical collection that identifies a device
that conforms to the generic enumerator specification.

Other: Hinge Angle

CA/CP

An application-level or physical collection that identifies a sensor
that measures the hinge angle.

CA/CP
CA/CP
CA/CP

235

Personal Activity

CA/CP

An application-level or physical collection that identifies a device
that measures information regarding personal, day-to-day activities
a user experiences.

Personal Activity: Activity
Detection

CA/CP

An application-level or physical collection that identifies a device
that measures confidence levels for detecting the device user’s
current activity.

Personal Activity: Device
Position

CA/CP

An application-level or physical collection that identifies a device
that detects the type of position in which the device is currently
placed.

Personal Activity:
Pedometer

CA/CP

Personal Activity: Step
Detection

CA/CP

An application-level or physical collection that identifies a device
that measures the cumulative number of steps taken, category ofsteps taken, and length of time spent stepping per category by thedevice user.
An application-level or physical collection that identifies a device
that detects when the user has taken a step.

Scanner

CA/CP

An application-level or physical collection that identifies a device
that reports information from scanning devices.

Scanner: Barcode

CA/CP

An application-level or physical collection that identifies a device
that is used for optical scanning of bar codes. It is strongly
recommended that barcode scanners report input data andsymbology information using the defined HID Point of Sale Usage
Tables specification and its associated HID Usage Page 0x8C.

Scanner: RFID

CA/CP

An application-level or physical collection that identifies a device
that is used for radio-frequency scanning of tags.

Scanner: NFC

CA/CP

An application-level or physical collection that identifies a
Near-Field Communication reader device. Such a device cancommunicate with other NFC-enabled devices over short distances.
Some NFC devices are also able to read RFID tags.

Time

CA/CP

An application-level or physical collection that identifies a device
that can report time, such as a typical RTC (Real Time Clock) /Time of Day Clock.

Time: Alarm Timer

CA/CP

An application-level or physical collection that identifies a device
that can report information at a particular time or after a certain
amount of time has passed.

Time: Real Time Clock

CA/CP

An application-level or physical collection that identifies a device
that can report current time, most often used for timestamping
sensor samples.

Vendor Reserved 1

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 2

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 3

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 4

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 5

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 6

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 7

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 8

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 9CA/CP

Reserved for use by Vendors/OEMs236

Vendor Reserved 10

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 11

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 12

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 13

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 14

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 15

CA/CP

Reserved for use by Vendors/OEMs

Vendor Reserved 16

CA/CP

Reserved for use by Vendors/OEMs

237

21.2

Modifiers

Modifiers are Usage Switches (US) used in conjunction other Usages and are used to change the meaning of a data field.
These fields are optionally supported by all sensors. The meaning is common for all sensors. This permits a single data
field to take on some number of additional meanings depending on the Usage Id of that data field.
The value of the Modifier is OR-ed into the top 4 bits of the un-modified Usage Id. Base Data Field Usage Ids(0x0100-0x07FF) can be modified with the application of a modifier to become Usage Ids (0x1100-0xF7FF). Usage Ids
stemmed from combining modifiers with non-data field usages are considered reserved.
The modifier is used to change the meaning of a data field as follows:
Usage Name

Usage TypeTop Bits

Description

Modifier: NoneUS0

The information contained in the data field is theunmodified meaning for that data field.

Modifier: Change Sensitivity
Absolute

US

1

Specifies the change sensitivity set for a particular
data field. Units are the same as the data field
being modified.
For example, if the data fieldis Temperature, Degrees Celsius, and the absolutesensitivity is 3 then that would mean change of ±3
Degrees Celsius.

Modifier: MaximumUS2

Modifier: MinimumUS

3

Modifier: AccuracyUS

4

The information contained in the data field is the
maximum value for that data field.
The information contained in the data field is theminimum value for that data field.
The information contained in the data field specifies
the absolute accuracy with which that data field isreported.

Modifier: Resolution

US

5

The information contained in the data field specifies
the absolute precision with which that data field isreported.

Modifier: Threshold HighUS

6

Modifier: Threshold Low

US7

Modifier: Calibration Offset

US

8

The information contained in the data field is the highthreshold value for that data field.
The information contained in the data field is the low
threshold value for that data field.
The information contained in the data field specifies
the calibration offset applied to the data normallyreported in that data field.

Modifier: Calibration MultiplierUS

9

The information contained in the data field specifies
the calibration multiplier applied to the data normallyreported in that data field.

Modifier: Report Interval

USA

Modifier: Frequency Max

USBSpecifies the Report Interval set for a particular data
field.
Specifies the maximum frequency for a particular data
field. Usually used as a time oriented thresholdto indicate an event has occurred more often thanrequired.

Modifier: Period Max

USCSpecifies the maximum period for a particular data
field. Usually used as a maximum threshold to indicate
an event has not occurred.

238

Modifier: Change Sensitivity
Percent of Range

US

DSpecifies the change sensitivity set for a particular
data field. Units are a percentage of the Minimum
to Maximum range. For example, if the data field isTemperature, Degrees Celsius, the Minimum is -4.0,
the Maximum is +40.0, and the percent of range
sensitivity is 5 then that would mean change of 5%
of -4.0 to +40.0 Degrees Celsius, (i.e., ±2.2 Degrees
Celsius).

Modifier: Change Sensitivity
Percent Relative

US

E

Specifies the change sensitivity set for a particular data
field. Units are a percentage of the prior reading.
For example, if the data field is Temperature, Degrees
Celsius, the prior reading was +24.0, and the percent
relative sensitivity is 4 then that would mean change
of 4% from 24.0 Degrees Celsius, (i.e., ±0.96 Degrees
Celsius).

Modifier: Vendor Reserved

USF

Reserved for use by Vendors as a Vendor specific
Modifier.

239

21.3

Sensor State Event Usages

Usage Name

Usage Type

Description

Event

DV

Generic event for sensor. Vendor defined.

These fields are optionally supported by all sensors. The meaning is common for all sensors.
The Event: Sensor State field is usually part of the Input report Event and indicates the current state of the sensor.
Usage Name

Usage Type

Description

Event: Sensor State

NAry

Specifies the a sensor state (from below).

Sensor State: UndefinedSensor State: Ready

Sel
Sel

The sensor state is not known
Sensor is able to provide new complete and accurate data.

Sensor State: Not Available
Sensor State: No Data

Sel
Sel

The sensor not available.
The sensor is available, but is not yet providing data. It is notknown in what timeframe data will, if ever, be provided.

Sensor State: Initializing

Sel

Sensor State: Access DeniedSel

The sensor is available, but is not yet providing data due toinitialization activities. It is expected the sensor will provide data,
but the timeframe in which that data will be available is not know.
In the case where an ID must be provided to access sensor data,
and the requester fails to match the ID, this state will be returned.

Sensor State: Error

Sel

The sensor has encountered a major error. The sensor may recoverfrom the state, but the time frame for recovery is unknown.

240

21.4

Sensor Event Usages

These fields are optionally supported by all sensors. The meaning is common for all sensors.
The Event: Sensor Event field us usually part of the Input report Event and indicate the reason for the receipt of the
input report.
Usage Name

Usage Type

Description

Event: Sensor Event

NAry

Specifies the a sensor event (from below).

Sensor Event: UnknownSel

The sensor event type is not known.

Sensor Event: State ChangedSel

The sensor state has changed.

Sensor Event: Property
ChangedSel

A property value has changed.

Sensor Event: Data Updated

Sel

A data field has changed.

Sensor Event: Poll ResponseSel

The most current sensor data is being returned as the result of apoll request (Get Input).

Sensor Event: Change
Sensitivity

Sel

The change sensitivity has been exceeded for a data field.

Sensor Event: Range Maximum
ReachedSensor Event: Range Minimum
ReachedSensor Event: High Threshold
Cross UpwardSel

The maximum for a data field has been reached.

Sel

The minimum for a data field has been reached.

Sel

The high threshold set for a data field has been crossed to above
the threshold from below the threshold.

Sensor Event: High Threshold
Cross Downward
Sensor Event: Low Threshold
Cross UpwardSel

The high threshold set for a data field has been crossed to below
the threshold from above the threshold.
The low threshold set for a data field has been crossed to above thethreshold from below the threshold.

Sensor Event: Low Threshold
Cross Downward
Sensor Event: Zero Threshold
Cross Upward

Sel

Sensor Event: Zero Threshold
Cross Downward

Sel

The zero point for a data field has been touched from above thezero point.

Sensor Event: Period ExceededSel

The maximum period set for a data field has been exceeded.

Sensor Event: Frequency
Exceeded
Sensor Event: Complex Trigger

Sel

The maximum frequency set for a data field has been exceeded.

Sel

A complex combination of vendor-defined circumstances has
occurred.

Sel

Sel

The low threshold set for a data field has been crossed to below thethreshold from above the threshold.
The zero point for a data field has been crossed to above the zero
point from at or below the zero point.

241

21.5

Generic Sensor Property Usages

These fields are optionally supported by all sensors. The meaning is common for all sensors.
Usage Name

Usage Type

Description

Property

DV

Generic property for sensor. Vendor defined.

Property: Friendly NameSV

Specifies a textual string name of the device in a humanfriendly
wording.

Property: Persistent Unique ID

DV

Property: Sensor Status

DV

Property: Minimum Report
IntervalSV

Uniquely identifies the device instance with which the sensor isassociated. You can use this to tell apart multiple identical sensors
attached to the same computer. Typically this value will be either
dynamically stored by the operating system into the USB device
shortly after reset/power-up or assigned by the manufacturer at thetime the device is manufactured.
Specifies the current sensor status, as defined by the implementer.
Not to be confused with the Sensor State Data Field that has
standardized enumeration values.
Specifies the minimum allowed elapsed time for periodic sensor
Input Report generation. Default unit of measure is milliseconds;
can be overridden using explicit Unit and/or Unit Exponent.

Property: Sensor Manufacturer

SV

Specifies a textual string name of the manufacturer of a sensor
device. For USB-based sensor devices, this may be the same as
the MANUFACTURER USB String Descriptor, but could differ
in two cases: (1) when a vendor manufactures a sensor modulethat incorporates a sensor chip from a third-party manufacturer;or (2) when a vendor manufactures a sensor hub that contains anaggregation of sensors from one or more other manufacturers.

Property: Sensor Model

SV

Property: Sensor Serial NumberSV

Specifies a textual string name of the model of a sensor device. For
USB-based sensor devices, this may be the same as the PRODUCTUSB String Descriptor, but could differ in two cases: (1) when avendor manufactures a sensor module that incorporates a sensor
chip from a third-party manufacturer; or (2) when a vendor
manufactures a sensor hub that contains an aggregation of sensors
from one or more other manufacturers.
Specifies a textual string name of the Serial Number ID of a sensor
device. For USB-based sensor devices, this may be the same as
the SERIAL NUMBER USB String Descriptor, but could differ
in two cases: (1) when a vendor manufactures a sensor modulethat incorporates a sensor chip from a third-party manufacturer;or (2) when a vendor manufactures a sensor hub that contains anaggregation of sensors from one or more other manufacturers.

Property: Sensor Description

SV

Specifies a textual string description of the sensor function.

Property: Sensor Device PathDV

Uniquely identifies the device instance with which the sensor isassociated. You can use this to tell apart multiple identical sensors
attached to the same computer. Typically this value will be
dynamically stored by the operating system into the USB device
shortly after reset/power-up.

Property: Hardware RevisionSV

Property: Firmware Version

SV

Property: Release Date

SV

Specifies a textual string name of the hardware revision of a sensor
device.
Specifies a textual string name of the firmware version of a sensor
device.
Specifies a textual string name of the release date of a sensor device.

242

Property: Report IntervalDV

Specifies the elapsed time for periodic sensor Input Report
generation, in milliseconds. A value of 0 means set/use device
default value, not 0 milliseconds.

Property: Change Sensitivity
Absolute

DV

Property: Change Sensitivity
Percent of Range

DV

Property: Change Sensitivity
Percent Relative

DV

Property: Accuracy

DV

Property: Resolution

DV

Specifies the absolute amount that by which a data field shouldchange before an event (such as an asynchronous Input Report) is
generated. Absolute sensitivity values are expressed using the sameunits as the corresponding data field, unless otherwise documented.
This form of change sensitivity usually applies to all related data
fields rather than to individual data fields.
Specifies the percent relative to the overall range of a data field thata data field should change before an event (such as an asynchronous
Input Report) is generated. Percent of range Sensitivity values
are expressed in percent of range, with range typically being the
maximum value minus the minimum value of the data field when
expressed as absolute values. This form of change sensitivity
usually applies to all related data fields rather than to individual
data fields.
Specifies the percent relative to the current sensor absolute value ofa data field that a data field should change before an event (such as
an asynchronous Input Report) is generated. This form of changesensitivity usually applies to all related data fields rather than toindividual data fields.
Specifies the accuracy of sensor values by representing possible
variation from true values. Accuracy values are expressed using thesame units as the corresponding data field, except when otherwise
documented. This form of accuracy a usually applies to all related
data fields rather than to individual data fields.
Resolution represents sensitivity to change in the data field.
Resolution values are expressed by using the same units as thedata field, except when otherwise documented.

Property: Maximum

DV

Property: Minimum

DV

Property: Sampling Rate

DV

Property: Response Curve

DV

Reports pairs of values that provide a mapping between value levels
and desired output.

Property: Is Primary

DF

Used in multiple sensors of same type, operating system can use
this property to tell whether this sensor is primary: TRUE if it isprimary, otherwise FALSE.

Specifies the maximum value that can be produced by thesensor. Range maximum is expressed using the same units as thecorresponding data field unless otherwise documented. This formof Range Maximum usually applies to all related data fields rather
than individual data fields.
Specifies the minimum value that can be produced by thesensor. Range minimum is expressed using the same units as thecorresponding data field unless otherwise documented. This formof Range Minimum usually applies to all related data fields rather
than individual data fields.
Sampling rate indicates the rate at which the sensor is physicallysampled. This is not necessarily the same as the rate at whichsamples are reported using asynchronous Input reports. Default
unit of measure is milliseconds; can be overridden using explicit
Unit and/or Unit Exponent.

24321.5.1

Property: Sensor Connection Types

Usage Name

Usage Type

Description

Property: Sensor
Connection Type

NAry

Specifies the current connection type

Connection Type: PC
Integrated

Sel

Integrated inside the computer.

Connection Type: PC Attached

Sel

Attached to the computer through a peripheral device (e.g. with a
special docking connector).

Connection Type: PC External

Sel

Connected by means of an external interface such as a network
connection. USB HID sensor devices should usually be type 0 ortype 1.

21.5.2

Property: Reporting State

Usage Name

Usage Type

Description

Property: Reporting State

NAry

Indicates the current reporting state of the sensor.

Reporting State: Report No
EventsReporting State: Report All
EventsReporting State: ReportThreshold Events
Reporting State: Wake On No
EventsSel

No asynchronous Input reports are sent.

Sel

All Input reports are sent without any filtering.

Sel

Input reports are sent only when it exceeds a pre-programmed
threshold.
No asynchronous Input reports are sent and a Wake On event isnever performed.

Reporting State: Wake On All
EventsSel

All Input reports are sent without any filtering and a Wake On
event is performed.

Reporting State: Wake On
Threshold Events

Sel

Input reports are sent only when it exceeds a pre-programmed
threshold and a Wake On event is performed.

21.5.3Sel

Property: Power State

Usage Name

Usage Type

Description

Property: Power State

NAry

Indicates the current power state of the sensor.

Power State: UndefinedSel

The device power state is currently unknown or undefined.

Power State: D0 Full PowerSel

The device is in full power operation.

Power State: D1 Low PowerSel

The device is in a low power operation mode.

Power State: D2 Standby Power
with Wakeup

Sel

The device is at a standby power mode (e.g., halted and awaiting
interrupts) and can be awakened.

Power State: D3 Sleep with
WakeupSel

The device is in a sleep mode and can be awakened.

Power State: D4 Power Off

Sel

The device is completely powered off and cannot be awakened.

244

21.5.4

Property: Sensor Batching Controls

Primary mechanism that a host uses to get data from HID sensor devices is by specifying a report interval value. This is
the elapsed time period for periodic input report generation. Instead of delivering input reports immediately to the hostthe device can instead buffer input reports and deliver it in batches. That is, the rate at which a device collects data isdecoupled from the rate at which it delivers it to the host. This can result in significant power savings in the processor,
especially in the case of continuous sensing applications that must run when the processor goes to sleep. Instead of waking
the processor for every single input report, data can be buffered and processed as a whole batch.
Usage Name

Usage Type

Description

Property:
Maximum FIFO
EventsSV

Indicates the maximum number of input reports that can be stored in a buffer
by this sensor. The actual size can be smaller than this value since the FIFO
can be shared by multiple sensors.

Property: Report
Latency

DV

Specifies the maximum latency that the host can tolerate before receiving a batchof input reports. The device should use this value (along with the report interval)
to calculate the number of input reports it should batch before delivering it tothe host. When the buffer becomes full, the device will deliver input reports
to the host in the order in which the reports were buffered. That is, the oldest
input report will be delivered first.

Property: FlushFIFO Events

DF

TRUE indicates any batched input reports in the device’s buffer should be
immediately flushed to the host where device is to reset this property to FALSE
upon completion.

Property:
Maximum Power
Consumption

SV

Indicates the worst-case power consumption by the device. Default unit ofmeasure is milli-watts, can be overridden using explicit Unit and/or Unit
Exponent.

245

21.6

Biometric Sensor Field Usages

These fields are commonly supported by biometric sensors.
Usage Name

Usage Type

Description

Data Field: Biometric
Data Field: Human Presence

DV
SF

Generic data field for biometric sensor. Vendor defined.
TRUE when a human is using the computer, otherwise FALSE.

Data Field: Human Proximity
Range

SV

Distance between a human and the computer. Default unit ofmeasure is meters; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Human Proximity
Out of Range

SF

TRUE when the sensor measuring human proximity range indicatesout of range meaning the value provided as Human Proximity
Range may not be accurate.

Data Field: Human Touch StateSFTRUE when the touch sensor is being touched, otherwise FALSE.
This is not to be confused with single-touch or multitouch digitizers
that provide finger position coordinates.

Data Field: Blood Pressure

SV

Indicates a blood pressure without respect to which blood pressure
type (systolic and diastolic). This is usually used as a composite
value for specifycing min, max and accuracy for related bloodpressures. Default units is mmHg; cannot be overridden.

Data Field: Blood Pressure
DiastolicSV

Indicates the diastolic blood pressure of the device user. Default
units is mmHg; cannot be overridden.

Data Field: Blood Pressure
Systolic

SV

Indicates the systolic blood pressure of the device user. Default
units is mmHg; cannot be overridden.

Data Field: Heart Rate

SV

Indicates the current heart rate of the device user. Default unit ofmeasure is number of heart beats per minute; cannot be overridden.

Data Field: Resting Heart Rate

SV

Indicates the current resting heart rate or the heart rate of thedevice user who has not had any recent physical exertion or
stimulation. Default unit of measure is number of heart beats per
minute; cannot be overridden.

Data Field: Heartbeat IntervalSV

Indicates the timespan between two heart beats (also known as RR
interval). Default unit of measure is ms, can be overridden using
explicit Unit and/or Unit Exponent.

Data Field: Respiratory Rate

SV

Indicates the current respiratory rate or rate of breath. Default unitof measure is number of breaths per minute; cannot be overridden.

Data Field: SpO2

SV

Measures the percentage of hemoglobin containing oxygen in the
blood of the device user. Default units is percent; cannot be
overridden.

246

21.7

Electrical Sensor Field Usages

These fields are commonly supported by electrical sensors.
Usage Name

Usage Type

Description

Data Field: Electrical
Data Field: CapacitanceDV
SV

Generic data field for electrical sensor. Vendor defined.
Measures electrical capacitance. Default unit of measure is Farads;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Current

SV

Measures electrical current. Default unit of measure is Amperes;can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Electrical PowerSV

Measures electrical power. Default unit of measure is Watts; canbe overridden using explicit Unit and/or Unit Exponent.

Data Field: InductanceSV

Measures electrical inductance. Default unit of measure is Henrys;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: ResistanceSV

Measures electrical resistance. Default unit of measure is Ohms;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Voltage

SV

Measures electrical voltage. Default unit of measure is Volts; canbe overridden using explicit Unit and/or Unit Exponent.

Data Field: Frequency

SV

Measures electrical frequency. Default unit of measure is Hertz;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: PeriodSV

Measures electrical period. Default unit of measure is milliseconds;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Percent of Range

SV

Measures the percent of range provided by a value, such as the
position of a potentiometer with respect to the overall physicalrange of that potentiometer. Can be scaled with a Unit Exponent.

247

21.8

Environmental Sensor Usages

These fields are commonly supported by environmental sensors.
Usage Name

Usage Type

Description

Data Field: Environmental
Data Field: AtmosphericPressure

DV
SV

Generic data field for environmental sensor. Vendor defined.
Measures atmospheric pressure. Default unit of measure is bars;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Relative Humidity

SV

Measures relative humidity as a percentage.

Data Field: Temperature

SV

Measures temperature. Default unit of measure is degrees Celsius;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Wind Direction

SV

Measures wind direction relative to magnetic north. Default unitof measure is degrees; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Wind Speed

SV

Measures wind speed. Default unit of measure is meters/second;can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Air Quality Index

SV

Measures the air quality (or amount of pollutants in thesurrounding air). Default unit of measure is AQI defined by theEnvironmental Protection Agency; cannot be overridden.

Data Field: Equivalent CO2

SV

Data Field: Volatile Organic
Compound Concentration

SV

Data Field: Object PresenceSF

Measures the equivalent carbon-dioxide concentration in thesurrounding air. Default unit of measure is percent; cannot be
overridden.
Measures the total volatile organic compounds (TVOC)
concentration. Default unit of measure is in percent; cannot
be overridden.
TRUE when an object presence is detected by the computing
device, otherwise FALSE.

Data Field: Object Proximity
Range

SV

Measures the distance between an object and the computing device.
Default unit of measure is meters; can be overridden using explicit
Unit and/or Unit Exponent.

Data Field: Object Proximity
Out of Range

SF

TRUE when the sensor measuring object proximity range indicatesout of range meaning the value provided as Object Proximity Range
may not be accurate.

These properties are commonly supported by environmental sensors.
Usage Name

Usage Type

Description

Property: Environmental

DV

Generic property for environmental sensor. Vendor defined.

Property: Reference Pressure

SV

Specifies reference atmospheric pressure at sea level, nominally1976 US Standard Atmosphere air pressure at Sea Level Pressure.
Default unit of measure is bars; can be overridden using explicit
Unit and/or Unit Exponent.

248

21.9

Light Sensor Usages

These fields are commonly supported by light sensors.
Usage Name

Usage Type

Description

Data Field: Light

DV

Generic data field for light sensor. Vendor defined.

Data Field: IlluminanceSV

Measures illuminance (light level, i.e., luminance per square area).
Default unit of measure is Lux; can be overridden using explicit
Unit and/or Unit Exponent.

Data Field: Color Temperature

SV

Measures the color temperature. Default unit of measure isdegrees Kelvin; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Chromaticity

SV

Chromaticity without respect to which axis it occurs in. This is
usually used as a composite value for specifying min, max andaccuracy for chromaticity.

Data Field: Chromaticity X

SVMeasures chromaticity in the X axis as defined by the CIE 1931
specification. Can be scaled with a Unit Exponent.

Data Field: Chromaticity Y

SVMeasures chromaticity in the Y axis as defined by the CIE 1931
specification. Can be scaled with a Unit Exponent.

Data Field: Consumer IR
Sentence Receive

SV

Data Field: Infrared LightSV

Data message received from a Consumer Infrared controller. Data
type is an opaque counted array of bytes; interpretation will dependon host-based middleware.
Measures the amount of infrared light (wavelength of approximately
700nm to 1mm). Default unit of measure is W/mm2 , can beoverridden using explicit Unit and/or Unit Exponent

Data Field: Red LightSV

Measures the amount of red light (wavelength of approximately
620nm to 700nm). Default unit of measure is W/mm2 , can beoverridden using explicit Unit and/or Unit Exponent.

Data Field: Green LightSV

Measures the amount of green light (wavelength of approximately
495nm to 570nm). Default unit of measure is W/mm2 , can beoverridden using explicit Unit and/or Unit Exponent.

Data Field: Blue LightSV

Measures the amount of blue light (wavelength of approximately
450nm to 495nm). Default unit of measure is W/mm2 , can beoverridden using explicit Unit and/or Unit Exponent.

Data Field: Ultraviolet A LightSV

Measures the amount of ultraviolet A light (wavelength ofapproximately 315nm to 400nm). Default unit of measure is
mW/cm2 , can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Ultraviolet B LightSV

Measures the amount of ultraviolet B light (wavelength ofapproximately 280nm to 315nm). Default unit of measure is
mW/cm2 , can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Ultraviolet Index

SV

Data Field: Near Infrared LightSV

Measures the strength of ultraviolet radiation defined by the World
Health Organization ultraviolet index standard. Default unit ofmeasure is ultraviolet index unit and cannot be overridden.
Measures the amount of infrared light (wavelength of approximately
700nm to 1mm). Default unit of measure is W/mm2 , can beoverridden using explicit Unit and/or Unit Exponent.

These properties are commonly supported by light sensors.
249

Usage Name

Usage Type

Description

Property: Light

DV

Generic property for light sensor. Vendor defined.

Property: Consumer IR
Sentence Send

DV

Property: Auto Brightness
Preferred

DF

Data message sent to a Consumer Infrared controller. Data typeis an opaque counted array of bytes; interpretation will depend on
host-based middleware.
TRUE when this light sensor is preferred to be used for system auto
brightness usage, otherwise FALSE.

Property: Auto Color Preferred

DF

TRUE when this light sensor is preferred to be used for system auto
color usage, otherwise FALSE.

250

21.10Location Sensor Field Usages

Usage Name

Usage Type

Description

Data Field: Location
Data Field: Altitude Antenna
Sea Level

DV
SV

Generic data field for location sensor. Vendor defined.
Indicates altitude of the antenna, references to sea level. Default
unit of measure is meters; can be overridden using explicit Unit
and/or Unit Exponent.

Data Field: Differential
Reference Station ID
Data Field: Altitude Ellipsoid
Error

SV

Indicates ID of the differential reference station. The range is 0000
to 1023
Indicates altitude error referenced to the World Geodetic System(WGS 84) reference ellipsoid. Default unit of measure is meters;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Altitude Ellipsoid

SV

Indicates altitude referenced to the World Geodetic System (WGS84) reference ellipsoid. Default unit of measure is meters; can beoverridden using explicit Unit and/or Unit Exponent.

Data Field: Altitude Sea Level
Error

SV

Indicates altitude error referenced to sea level. Default unit ofmeasure is meters; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Altitude Sea Level

SV

Indicates altitude referenced to sea level. Default unit of measureis meters; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Differential GPS
Data Age

SV

Indicates age of differential GPS data. Default unit of measure
is seconds; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Error RadiusSV

Indicates accuracy of latitude and longitude values. Default unitof measure is meters; can be overridden using explicit Unit and/or
Unit Exponent. A value of 0 means that the accuracy level is not
currently known.

Data Field: Geoidal Separation

SV

Indicates the difference between the World Geodetic System (WGS84) ellipsoid and mean sea level. Values less than zero indicatethat mean sea level is below the reference ellipsoid. Default unitof measure is meters; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Position Dilution ofPrecision
Data Field: Horizontal Dilutionof Precision
Data Field: Vertical Dilution ofPrecision
Data Field: Latitude

SV

Indicates the position dilution of precision.

SV

Indicates the horizontal dilution of precision.

SV

Indicates the vertical dilution of precision.

SV

Indicates the latitude. Default unit of measure is degrees; can beoverridden using explicit Unit and/or Unit Exponent. North ispositive; South is negative.

Data Field: Longitude

SV

Indicates longitude. Default unit of measure is degrees; can beoverridden using explicit Unit and/or Unit Exponent. East is
positive; West is negative.

Data Field: True Heading

SV

Indicates the current heading in relation to true north. Default unitof measure is degrees; can be overridden using explicit Unit and/or
Unit Exponent.

SV

251

Data Field: Magnetic Heading

SV

Indicates the heading in relation to magnetic north. Default unitof measure is degrees; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Magnetic Variation

SV

Indicates the magnetic variation from true north. East is positive;
West is negative. Default unit of measure is degrees; can beoverridden using explicit Unit and/or Unit Exponent.

Data Field: Speed

SV

Indicates the current speed. Default unit of measure is knots; canbe overridden using explicit Unit and/or Unit Exponent.

Data Field: Satellites in View

SV

Indicates the number of GPS satellites currently in view.

Data Field: Satellites in View
AzimuthData Field: Satellites in View
Elevation
Data Field: Satellites in View
IDs
Data Field: Satellites in View
PRNs

SV

Indicates the azimuth of GPS satellites currently in view.

SV

Indicates the elevation of GPS satellites currently in view.

SV

Indicates the ID of GPS satellites currently in view.

SV

Indicates the Pseudo-Random Noise codes of GPS satellites
currently in view.

Data Field: Satellites in View
S/N Ratios

SV

Indicates the Signal-to-Noise Ratio of GPS satellites currently inview.

Data Field: Satellites UsedCount
Data Field: Satellites Used
PRNs

SV

Indicates the number of GPS satellites that are currently being used
to calculate a location solution.
Indicates the Pseudo-Random Noise codes of the GPS satellites
currently being used to calculate a location solution.

Data Field: NMEA SentenceSV

Indicates the current NMEA sentence string.

Data Field: Address Line 1

SV

Indicates street address, first line.

Data Field: Address Line 2

SV

Indicates street address, second line.

Data Field: City

SV

Indicates city.

Data Field: State or Province

SV

Indicates state or province.

Data Field: Country or Region

SV

Indicates country or region represented as an ISO 3166 1-alpha-2
country/region code.

Data Field: Postal CodeSV

Indicates the postal code.

SV

These properties are commonly supported by location sensors.
Usage Name

Usage Type

Description

Property: Location

DV

Generic property for location sensor. Vendor defined.

21.10.1

Location Desired Accuracy

Usage Name

Usage Type

Description

Property: Location Desired
Accuracy

NAry

Indicates the type of accuracy handling desired by a client
application.

Accuracy: Default

Sel

Indicates that the sensor should use its own default accuracy policy.

Accuracy: HighSel

Indicates that the sensor should optimize for the most accurate
location report possible, even if it consumes more energy, costs
more money, or uses more connection bandwidth.

252

Accuracy: Medium

Sel

Indicates that the sensor should strike a balance between accuracy
and power consumption.

Accuracy: Low

Sel

Indicates that the sensor should reduce accuracy thereby optimizing
for power utilization.

Usage Name

Usage Type

Description

Data Field: Fix Quality

NAry

Indicates fix quality.

Fix Quality: No Fix

Sel

No FixFix Quality: GPS

Sel

GPS

Fix Quality: DGPS

Sel

DPGS

Usage Name

Usage Type

Description

Data Field: Fix Type

NAry

Indicates fix type.

Fix Type: No Fix

Sel

No FixFix Type: GPS SPS Mode, FixValid
Fix Type: DGPS SPS Mode,Fix Valid
Fix Type: GPS PPS Mode, FixValid
Fix Type: Real Time KinematicSel

GPS SPS Mode, Fix Valid

Sel

DGPS SPS Mode, Fix ValidSel

GPS PPS Mode, Fix Valid

Sel

Real Time Kinematic

Fix Type: Float RTK

Sel

Float RTK

Fix Type: Estimated (deadreckoned)

Sel

Estimated (dead reckoned)

Fix Type: Manual Input Mode

Sel

Manual Input ModeFix Type: Simulator Mode

Sel

Simulator Mode

21.10.2

21.10.3

21.10.4

Fix Quality

Fix Type

GPS Operation Mode

Usage Name

Usage Type

Description

Data Field: GPS Operation
Mode
GPS Operation Mode: Manual

NAry

Indicates GPS operation mode.

Sel

Manually set for 2D or 3D mode

GPS Operation Mode:
Automatic

Sel

Automatically can switch between 2D and 3D modes.

21.10.5

GPS Selection Mode

Usage Name

Usage Type

Description

Data Field: GPS Selection
Mode

NAry

Indicates GPS selection mode

253

GPS Selection Mode:
Autonomous
GPS Selection Mode: DGPSGPS Selection Mode: Estimated(dead reckoned)

Sel

Autonomous

Sel
Sel

DGPS
Estimated (dead reckoned)

GPS Selection Mode: Manual
Input

Sel

Manual Input

GPS Selection Mode: Simulator
GPS Selection Mode: Data Not
Valid

Sel
Sel

Simulator
Data Not Valid

Usage Name

Usage Type

Description

Data Field: GPS Status

NAry

Indicates current GPS data status

GPS Status Data: Valid
GPS Status Data: Not Valid

Sel
Sel

Data Valid.
Data Not Valid.

21.10.6

GPS Status254

21.11

Mechanical Sensor Field Usages

These fields are commonly supported by mechanical sensors.
Usage Name

Usage Type

Description

Data Field: Mechanical
Data Field: Boolean Switch
State
Data Field: Boolean Switch
Array States

DV
SF

Generic data field for mechanical sensor. Vendor defined.
Reports the on/off state of a Boolean switch.

SV

Reports the on/off state of each of an array of Boolean switches.

Data Field: Multivalue Switch
Value
Data Field: Force

SV

Reports the multivalue state of a Multivalue switch.

SV

Measures force. Default unit of measure is Newtons; can beoverridden using explicit Unit and/or Unit Exponent.

Data Field: Absolute Pressure

SV

Measures absolute pressure. Default unit of measure is Pascals; canbe overridden using explicit Unit and/or Unit Exponent.

Data Field: Gauge Pressure

SV

Measures relative gauge pressure.
Default unit of measure
is Pascals; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Strain

SV

Measures strain (in percent). Can be scaled with a Unit Exponent.

Data Field: WeightSV

Measures weight. Default unit of measure is kilograms; can beoverridden using explicit Unit and/or Unit Exponent.

These properties are commonly supported by mechanical sensors.
Usage Name

Usage Type

Description

Property: Mechanical

DV

Generic property for mechanical sensor. Vendor defined.

Property: Vibration StateDF

The on/off state of a Haptic feedback vibrator.

Property: Forward Vibration
Speed

DV

The forward speed of the vibrator (in percent). Can be scaled witha Unit Exponent.

Property: Backward Vibration
Speed

DV

The backward speed of the vibrator (in percent). Can be scaledwith a Unit Exponent. Some haptic motors do not support bothforward and backward motion. For those that do, setting bothforward and backward speeds to non-zero values simultaneously
has a vendor-defined behavior.

255

21.12

Motion Sensor Field Usages

These fields are commonly supported by motion sensors.
Usage Name

Usage Type

Description

Data Field: Motion
Data Field: Motion StateDVSF

Generic data field for motion sensor. Vendor defined.
A flag indicating presence or absence of motion.

Data Field: AccelerationSV

Linear acceleration magnitude without respect to which axis it
occurs in. This is usually used as a composite value for specifying
min, max and accuracy for related accelerations. Default unit ofmeasure is G’s; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Acceleration Axis X

SV

Linear acceleration along the X axis. Default unit of measure isG’s; can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Acceleration Axis Y

SVLinear acceleration along the Y axis. Default unit of measure isG’s; can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Acceleration Axis Z

SV

Linear acceleration along the Z axis. Default unit of measure isG’s; can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Angular Velocity

SV

Angular velocity magnitude without respect to which axis it occurs
in. This is usually used as a composite value for specifying min,max and accuracy for related velocity. Default unit of measure isdegrees/second; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Angular Velocity
about X Axis

SV

Angular velocity about the X axis. Default unit of measure isdegrees/second; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Angular Velocity
about Y Axis

SV

Angular velocity about the Y axis. Default unit of measure isdegrees/second; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Angular Velocity
about Z Axis

SV

Angular velocity about the Z axis. Default unit of measure isdegrees/second; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Angular Position

SV

Angular position without respect to which axis it occurs in. Thisis usually used as a composite value for specifying min, max andaccuracy for related position. Default unit of measure is degrees;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Angular Position
about X Axis

SV

Angular position about the roll axis. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Angular Position
about Y Axis

SV

Angular position about the pitch axis. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Angular Position
about Z Axis

SV

Angular position about the yaw axis. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Motion Speed

SV

Velocity magnitude without respect to direction. Default unit ofmeasure is meters/second; can be overridden using explicit Unit
and/or Unit Exponent.

256

Data Field: Motion Intensity

SV

A positive number indicating intensity of motion if motion isdetected (in percent), otherwise 0. Can be scaled with a Unit
Exponent.

257

21.13

Orientation Sensor Field Usages

These fields are commonly supported by orientation sensors.
Usage Name

Usage Type

Description

Data Field: Orientation
Data Field: Heading

DV
SV

Generic data field for orientation sensor. Vendor defined.
Indicates the compass heading without respect to which axis it
occurs in. This is usually used as a composite value for specifying
min, max and accuracy for related axes. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Heading X Axis

SV

Indicates the compass X axis heading. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Heading Y Axis

SV

Indicates the compass Y axis heading. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Heading Z Axis

SV

Indicates the compass Z axis heading. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Heading
Compensated Magnetic North

SV

Indicates compass magnetic heading has been compensated for tilt
with respect to earth normal. Default unit of measure is degrees;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Heading
Compensated True North

SV

Indicates compass true north heading has been compensated for tilt
with respect to earth normal. Default unit of measure is degrees;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Heading Magnetic
North

SV

Indicates compass magnetic heading is not compensated. Default
unit of measure is degrees; can be overridden using explicit Unit
and/or Unit Exponent.

Data Field: Heading True North

SV

Indicates compass true north heading is not compensated. Default
unit of measure is degrees; can be overridden using explicit Unit
and/or Unit Exponent.

Data Field: DistanceSV

Indicates the distance magnitude without respect to which axis it
occurs in. This is usually used as a composite value for specifying
min, max and accuracy for related axes. Default unit of measureis meters; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Distance X Axis

SV

Indicates the X axis distance. Default unit of measure is meters;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Distance Y Axis

SV

Indicates the Y axis distance. Default unit of measure is meters;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: Distance Z Axis

SV

Indicates the Z axis distance. Default unit of measure is meters;
can be overridden using explicit Unit and/or Unit Exponent.

Data Field: DistanceOut-of-Range

SF

TRUE when the sensor measuring distance indicates out of range
meaning the value provided as Distance may not be accurate.

Data Field: Tilt

SV

Indicates the inclinometer angle without respect to which axis it
occurs in. This is usually used as a composite value for specifying
min, max and accuracy for related axes. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

258

Data Field: Tilt X Axis

SV

Indicates the inclinometer X axis angle. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Tilt Y Axis

SV

Indicates the inclinometer Y axis angle. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Tilt Z Axis

SV

Indicates the inclinometer Z axis angle. Default unit of measure
is degrees; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Rotation Matrix

SV

A 3 x 3 matrix of numbers, all ranging in value from -1.0 to 1.0,
representing rotation within a 3D space. No units are specified andscaling is by the Unit Exponent usage.

Data Field: QuaternionSV

A matrix of 4 values (x, y, z and w, all ranging in value from -1.0 to1.0) that represent rotation in space about a unit vector. No units
are specified and scaling is by the Unit Exponent usage.

Data Field: Magnetic Flux

SV

Indicates the magnetic field strength without respect to which axis
it occurs in. This is usually used as a composite value for specifying
min, max and accuracy for related axis. Default unit of measureis milligauss; can be overridden using explicit Unit and/or Unit
Exponent.

Data Field: Magnetic Flux X
Axis

SV

Indicates the X axis magnetic field strength. Default unit ofmeasure is milligauss; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Magnetic Flux Y
Axis

SV

Indicates the Y axis magnetic field strength. Default unit ofmeasure is milligauss; can be overridden using explicit Unit and/or
Unit Exponent.

Data Field: Magnetic Flux Z
Axis

SV

Indicates the Z axis magnetic field strength. Default unit ofmeasure is milligauss; can be overridden using explicit Unit and/or
Unit Exponent.

In addition to the field usages listed above, Data Field: Magnetic Heading and Data Field: Magnetic Variation arecommonly used with Orientation sensors.

259

21.13.1

Magnetometer Accuracy

Magnetometer sensors are susceptible to electromagnetic field interference from the surrounding environment or thecomputing device itself. Because orientation sensors such as compass, inclinometer, and device orientation rely onmagnetometer data, as interference increases, sensor accuracy degrades. In many cases dynamic calibration is neededto account for the changing electromagnetic environment, which requires the device to be moved around all three device
axis.
The below specifies a magnetometer accuracy data field usage to be included in each orientation input report. Magnetometer
accuracy will be one of low, medium, or high, indicating how closely the data represents the heading of a magnetically-calibrated
device with respect to a horizontal plane. Here magnetometer accuracy relates to the component of the fused sensor data
impacted by the magnetic field and not just the raw magnetic field vector. For example magnetometer accuracy for
an inclinometer would describe the accuracy of the Z (yaw) component of the data, but not the X and Y components.
Often computing an absolute accuracy in degrees is computationally expensive or impossible as data values vary withinsome confidence interval. This solution allows magnetometer accuracy to be specified at a reasonable granularity: low,
medium, and high. The below defines only the relative meaning of each of these values; an explicit definition is left to theimplementation.
With these usages, the consumer of the data is responsible for determining minimum acceptable accuracy and taking
the appropriate action. There is no event defined indicating calibration is needed or complete, and there is no means to
instruct the sensor to enter a special calibration mode. It is expected that the magnetometer accuracy value will change
in successive data reports as calibration changes.
Usage Name

Usage Type

Description

Data Field: Magnetometer
Accuracy

NAry

Indicates accuracy of the sensor data component impacted by
the magnetic field.

Magnetometer Accuracy: Low

Sel

Magnetometer Accuracy: Medium

Sel

Sensor is providing a low level of magnetometer accuracy. Itshould be calibrated for reliable data.
Sensor is providing a medium level of magnetometer accuracy
and may benefit from additional calibration data.

Magnetometer Accuracy: HighSel

21.13.2

Sensor is fully calibrated and providing a high level ofmagnetometer accuracy.

Simple Orientation Direction

Usage Name

Usage Type

Description

Data Field: Simple
Orientation Direction

NAry

Indicates the current orientation of the device with respect tothe following types.

Simple Orientation Direction: Not
Rotated
Simple Orientation Direction:
Rotated 90 Degrees CCW

Sel

Not Rotated, front face of device is in its default orientation.

Sel

Rotated 90 Degrees CCW, front face of device is rotated 90
degrees counter clock-wise its default position.

Simple Orientation Direction:
Rotated 180 Degrees CCW

Sel

Rotated 180 Degrees CCW, front face of device is rotated 180
degrees counter clock-wise its default position.

Simple Orientation Direction:
Rotated 270 Degrees CCW

Sel

Rotated 270 Degrees CCW, front face of device is rotated 270
degrees counter clock-wise its default position.

Simple Orientation Direction: Face
Up

Sel

Face Up, front face of device is pointing away from the ground.

Simple Orientation Direction: Face
Down

Sel

Face Down, front face of device is pointing towards the ground.

260

21.14

Scanner Sensor Field Usages

These fields are commonly supported by scanner sensors.
Usage Name

Usage Type

Description

Data Field: Scanner
Data Field: RFID Tag 40 Bit

DVSVGeneric data field for scanner sensor. Vendor defined.
Indicates the 40-bit radio frequency ID tag value.

Data Field: NFC Sentence
ReceiveSV

Data message received from an NFC controller. Data type isan opaque counted array of bytes; interpretation will depend on
host-based middleware (HCI specification protocol is typical).

These properties are commonly supported by scanner sensors.
Usage Name

Usage Type

Description

Property: Scanner

DV

Generic property for scanner sensor. Vendor defined.

Property: NFC Sentence Send

SV

Data message sent to an NFC controller. Data type is an opaquecounted array of bytes; interpretation will depend on hostbased
middleware (HCI specification protocol is typical).

261

21.15Time Sensor Field Usages

These fields are commonly supported by time sensors.
Usage Name

Usage Type

Description

Data Field: Time
Data Field: Year

DV
SV

Generic data field for time sensor. Vendor defined.
Indicates the current year.

Data Field: MonthSV

Indicates the current month (1 – 12).

Data Field: Day

SV

Indicates the current day of the month (1 – 31).

Data Field: HourSV

Indicates the current hour (00 – 23).

Data Field: MinuteSV

Indicates the current minute (00 – 59).

Data Field: Second

SV

Indicates the current second (00 – 59).

Data Field: Millisecond

SV

Indicates the current millisecond (000 – 999).

Data Field: Timestamp

SV

Indicates the current time (UTC) expressed in a format compliant
to the C language library _time64() function (i.e., the number of
seconds since 1/1/1970 00:00:00 UTC).

Data Field: Julian Day of Year

SV

Indicates the day of the year (1 – 366).

Data Field: Time Since System
Boot

SV

Specifies the amount of time that has passed since the host system’sboot. Default unit of measure is seconds; can be overridden using
explicit Unit and/or Unit Exponent.

These properties are commonly supported by time sensors.
Usage Name

Usage Type

Description

Property: TimeDV

Specifies the local time zone offset from UTC. Default unit ofmeasure is minutes; can be overridden using explicit Unit and/or
Unit Exponent.

Property: Time Zone Offset
From UTC

DV

Specifies the local time zone offset from UTC. Default unit ofmeasure is minutes; can be overridden using explicit Unit and/or
Unit Exponent.

Property: Time Zone Name

DV

Specifies the textual name of the local time zone.

Property: Daylight Savings
Time Observed
Property: Time Trim
Adjustment

DF

Specifies whether or not Daylight Savings Time or Summer Timeis observed in the local area.
Specifies a trim factor used to correct inaccuracies in the Real-Time
Clock. It is a signed unit-less value, and implementation dependent.

Property: Arm Alarm

DF

Specifies whether the Alarm function should be armed (TRUE) or
disarmed (FALSE). The alarm is automatically disarmed when it
expires (i.e., goes off ).

Usage Name

Usage Type

Description

Data Field: Day of Week

NAry

Indicates the current day of the week.

Day of Week: Sunday

Sel

SundayDay of Week: Monday

Sel

MondayDay of Week: Tuesday

Sel

Tuesday

21.15.1

DV

Day of Week

262

Day of Week: Wednesday

Sel

Wednesday

Day of Week: ThursdaySelThursdayDay of Week: Friday

Sel

FridayDay of Week: Saturday

Sel

Saturday263

21.16

Custom Sensor Field Usages

These fields are commonly supported by custom sensors.
Usage Name

Usage Type

Description

Data Field: Custom
Data Field: Custom Usage

DV
SV

Data Field: Custom Type ID

SV

Generic data field for custom sensor. Vendor defined.
Indicates the HID Sensor Usage. See custom data field Custom
Type ID if searching for a data field to assign a unique identifier
for a custom sensor.
A 16-byte GUID to uniquely identify a Custom Sensor instance.

Data Field: Custom Boolean
Array

SV

Reports the on/off state of each of an array of Boolean variables.

Data Field: Custom ValueSV

Custom value without respect to which specific custom value field isbeing used. This is usually used as a composite value for specifying
min, max and accuracy for custom values. Units are specified by
the Units usage and scaling by the Unit Exponent usage.

Data Field: Custom Value 1

SV

A first custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 2SV

A second custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 3SVA third custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 4

SVA fourth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 5SVA fifth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 6

SVA sixth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 7

SVA seventh custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 8SVA eighth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 9SVA ninth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 10

SVA tenth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 11

SVA eleventh custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 12

SVA twelfth custom value. Units are specified by the Units usage andscaling by the Unit Exponent usage.

Data Field: Custom Value 13

SVA thirteenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 14

SVA fourteenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 15SV

A fifteenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 16

SVA sixteenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

264

Data Field: Custom Value 17

SV

A seventeenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 18

SVA eighteenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 19

SVA nineteenth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 20

SVA twentieth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 21

SVA twenty-first custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 22

SVA twenty-second custom value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Data Field: Custom Value 23

SVA twenty-third custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 24

SVA twenty-fourth custom value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Data Field: Custom Value 25

SVA twenty-fifth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 26

SV

A twenty-sixth custom value. Units are specified by the Units usage
and scaling by the Unit Exponent usage.

Data Field: Custom Value 27

SVA twenty-seventh custom value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Data Field: Custom Value 28

SVA twenty-eighth custom value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

26521.17

Custom Sensor Property Usages

These properties are commonly supported by custom sensors.
Usage Name

Usage Type

Description

Property: Custom Value 1

DV

A first custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 2

DV

A second custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 3

DV

A third custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 4

DV

A fourth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 5

DV

A fifth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 6

DV

A sixth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 7

DV

A seventh custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 8

DV

A eighth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 9

DVA ninth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 10

DV

A tenth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 11

DV

A eleventh custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 12

DV

A twelfth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 13

DV

A thirteenth custom property value. Units are specified by the
Units usage and scaling by the Unit Exponent usage.

Property: Custom Value 14

DV

A fourteenth custom property value. Units are specified by the
Units usage and scaling by the Unit Exponent usage.

Property: Custom Value 15

DV

A fifteenth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

Property: Custom Value 16

DV

A sixteenth custom property value. Units are specified by the Units
usage and scaling by the Unit Exponent usage.

266

21.18Generic Sensor Field Usages

These fields are commonly supported by generic sensors.
Usage Name

Usage Type

Description

Data Field: Generic

DV

Generic data field for generic sensor. Vendor defined.

Data Field: Generic GUID or
PROPERTYKEY
Data Field: Generic Category
GUID

SV

A 30-byte structure GUID_OR_PROPERTYKEY

SV

A 16-byte GUID used to specify an inline sensor category. The
GUID is followed by a field that indicates the sensor category value
assigned to that GUID.

Data Field: Generic Type GUIDSV

Data Field: Generic Event
PROPERTYKEY

SV

A 16-byte GUID used to specify an inline sensor type. The GUID
is followed by a field that indicates the sensor type value assigned
to that GUID.
A 20-byte PROPERTYKEY used to specify an inline sensor event.
The PROPERTYKEY is followed by a field that indicates the event
value assigned to that PROPERTYKEY.

Data Field: Generic Property
PROPERTYKEY

SV

A 20-byte PROPERTYKEY used to specify an inline sensor
property. The PROPERTYKEY is followed by a field that indicatesthe property value assigned to that PROPERTYKEY.

Data Field: Generic Data Field
PROPERTYKEY

SV

A 20-byte PROPERTYKEY used to specify an inline sensor data
field. The PROPERTYKEY is followed by a field that indicatesthe data field value assigned to that PROPERTYKEY.

Data Field: Generic Event

SV

Data Field: Generic Property

SV

Data Field: Generic Data Field

SV

Data Field: Enumerator Table
Row Index

SV

Usage ID for the field that follows the Generic Event
PROPERTYKEY.
Usage ID for the field that follows the Generic Property
PROPERTYKEY.
Usage ID for the field that follows the Generic Data Field
PROPERTYKEY.
When using the Enumerator top-level-collection strategy, thisusage specifies the Row index of the Enumerator’s table.

Data Field: Enumerator Table
Row Count

SV

When using the Enumerator top-level-collection strategy, thisusage specifies the total count of Rows in the Enumerator’s table.

Data Field: Generic GUIDSV

A 16-byte GUID. May be a Category GUID or a Type GUID; as
specified by Generic GUID or PROPERTYKEY kind.

Data Field: Generic
PROPERTYKEY

SV

A 20-byte PROPERTYKEY. May be an Event PROPERTYKEY,
Property PROPERTYKEY, or a Data Field PROPERTYKEY; as
specified by Generic GUID or PROPERTYKEY kind.

Data Field: Generic Top Level
Collection ID
Data Field: Generic Report ID

SV

Identifies the HID Top Level Collection ID for the Row in the
Enumerator’s table.
Identifies the HID Report ID for the Row in the Enumerator’s table.

Data Field: Generic Report
Item Position Index

SV

Indicates the 1-based sequential position of the Property or Data
Field in its Report.

Data Field: Generic Report SizeSV

Data Field: Generic ReportCount
Property: GenericSV

Indicates the HID Report Size for the Row in the Enumerator’stable.
Indicates the HID Report Count for the Row in the Enumerator’stable.
Generic property for generic sensor. Vendor defined.

Property: Enumerator Table
Row Index

DV

SV

DV

When using the Enumerator top-level-collection strategy, thisusage specifies the Row index of the Enumerator’s table.

267

Property: Enumerator Table
Row Count

SV

When using the Enumerator top-level-collection strategy, thisusage specifies the total count of Rows in the Enumerator’s table.

These properties are commonly supported by generic sensors.
Usage Name

Usage Type

Description

Property: Generic

DV

Generic property for generic sensor. Vendor defined.

Property: Enumerator Table
Row Index

DV

When using the Enumerator top-level-collection strategy, thisusage specifies the Row index of the Enumerator’s table.

Property: Enumerator Table
Row Count

SV

When using the Enumerator top-level-collection strategy, thisusage specifies the total count of Rows in the Enumerator’s table.

21.18.1

Generic GUID or PROPERTYKEY kind

Usage Name

Usage Type

Description

Data Field: Generic GUIDor PROPERTYKEY kind
Kind: Category

NAry

Indicates what kind of GUID or PROPERTYKEY is being used.

Sel

Sensor Category GUID.

Kind: TypeSel

Sensor Type GUID.

Kind: Event
Kind: Property

Sel
Sel

Sensor Event PROPERTYKEY.
Sensor Property PROPERTYKEY.

Kind: Data Field

Sel

Sensor Data Field PROPERTYKEY.

21.18.2

Generic Firmware VARTYPE

Usage Name

Usage Type

Description

Data Field: GenericFirmware VARTYPE
VT_NULL

NAry
Sel

Identifies the firmware data type associated with the Property or
Data Field in the Row in the Enumerator’s table.
Empty

VT_BOOL

Sel

Boolean

VT_UI1

Sel

Byte

VT_I1

Sel

Character

VT_UI2Sel

Unsigned Short

VT_I2

Sel

Short

VT_UI4Sel

Unsigned Long

VT_I4

Sel

Long

VT_UI8Sel

Unsigned Long Long

VT_I8

Sel

Long Long

VT_R4

Sel

Float

VT_R8

Sel

DoubleVT_WSTR

Sel

Wide String

VT_STR

Sel

Narrow String

VT_CLSID

Sel

Guid

VT_VECTOR VT_UI1

Sel

Opaque Structure268

VT_F16E0

Sel

16-bit Float with Unit Exponent 0

VT_F16E1

Sel

16-bit Float with Unit Exponent 1

VT_F16E2

Sel

16-bit Float with Unit Exponent 2

VT_F16E3

Sel

16-bit Float with Unit Exponent 3

VT_F16E4

Sel

16-bit Float with Unit Exponent 4

VT_F16E5

Sel

16-bit Float with Unit Exponent 5

VT_F16E6

Sel

16-bit Float with Unit Exponent 6

VT_F16E7

Sel

16-bit Float with Unit Exponent 7

VT_F16E8

Sel

16-bit Float with Unit Exponent 8

VT_F16E9Sel

16-bit Float with Unit Exponent 9

VT_F16EA

Sel

16-bit Float with Unit Exponent A

VT_F16EB

Sel

16-bit Float with Unit Exponent B

VT_F16EC

Sel

16-bit Float with Unit Exponent C

VT_F16ED

Sel

16-bit Float with Unit Exponent D

VT_F16EE

Sel

16-bit Float with Unit Exponent E

VT_F16EFSel

16-bit Float with Unit Exponent F

VT_F32E0Sel32-bit Float with Unit Exponent 0

VT_F32E1

Sel

32-bit Float with Unit Exponent 1

VT_F32E2

Sel

32-bit Float with Unit Exponent 2

VT_F32E3

Sel

32-bit Float with Unit Exponent 3

VT_F32E4

Sel

32-bit Float with Unit Exponent 4

VT_F32E5

Sel

32-bit Float with Unit Exponent 5

VT_F32E6

Sel

32-bit Float with Unit Exponent 6

VT_F32E7

Sel

32-bit Float with Unit Exponent 7

VT_F32E8Sel

32-bit Float with Unit Exponent 8

VT_F32E9Sel

32-bit Float with Unit Exponent 9

VT_F32EA

Sel

32-bit Float with Unit Exponent A

VT_F32EB

Sel

32-bit Float with Unit Exponent B

VT_F32EC

Sel

32-bit Float with Unit Exponent C

VT_F32ED

Sel

32-bit Float with Unit Exponent D

VT_F32EE

Sel

32-bit Float with Unit Exponent E

VT_F32EFSel

32-bit Float with Unit Exponent F

21.18.3

Generic Unit of Measure

Usage Name

Usage Type

Description

Data Field: Generic Unit of
MeasureNAry

Indicates the HID Unit for the Row in the Enumerator’s table.
These are used in lieu of explicit Unit() declarations in the HID
Report Descriptor for Generic Sensors.

Unit: Not Specified

Sel

Not Specified

Unit: Lux
Unit: Degrees Kelvin

Sel
Sel

Lux
Degrees Kelvin269

Unit: Degrees Celsius

Sel

Degrees Celsius

Unit: Pascal
Unit: Newton
Unit: Meters/Second

Sel
Sel
Sel

PascalNewtonMeters/Second

Unit: Kilogram

Sel

Kilogram

Unit: Meter
Unit: Meters/Second/Second

Sel
Sel

Meter
Meters/Second/Second

Unit: Farad
Unit: Ampere

Sel
Sel

Farad
AmpereUnit: Watt
Unit: Henry

Sel
Sel

Watt
Henry

Unit: Ohm
Unit: Volt
Unit: Hertz
Unit: Bar
Unit: Degrees Anti-clockwise

Sel
Sel
Sel
Sel
Sel

Ohm
Volt
Hertz
Bar
Degrees Anti-clockwise

Unit: Degrees Clockwise

Sel

Degrees Clockwise

Unit: Degrees

Sel

Degrees

Unit: Degrees/Second

Sel

Degrees/Second

Unit: Degrees/Second/Second

Sel

Degrees/Second/Second

Unit: Knot
Unit: Percent
Unit: Second
Unit: Millisecond
Unit: G
Unit: Bytes

Sel
Sel
Sel
Sel
Sel
Sel

Knot
Percent
SecondMillisecond
G
Bytes

Unit: Milligauss

Sel

Milligauss

Unit: Bits

Sel

Bits

21.18.4

Generic Unit Exponent

Usage Name

Usage Type

Description

Data Field: Generic Unit
Exponent

NAry

Indicates the HID Unite Exponent for the Row in the Enumerator’stable.

Exponent 0

Sel

1

Exponent 1

Sel

10

Exponent 2

Sel

100

Exponent 3

Sel

1 000

Exponent 4

Sel

10 000

Exponent 5

Sel

100 000

Exponent 6

Sel

1 000 000

Exponent 7

Sel

10 000 000

Exponent 8

Sel

0.000 000 01

270

Exponent 9

Sel

0.000 000 1

Exponent A

Sel

0.000 001

Exponent B

Sel

0.000 01

Exponent C

Sel

0.000 1

Exponent D

Sel

0.001

Exponent E

Sel

0.01

Exponent F

Sel

0.1

271

21.19Personal Activity Sensor Field Usages

These fields are commonly supported by personal activity sensors.
Usage Name

Usage Type

Description

Data Field: Personal Activity

DV

Generic data field for personal activity sensor. Vendor defined.

Data Field: Step CountSV

Indicates the number of footsteps take since last device reset.

Data Field: Step Count ResetDF

If present in feature report, the host setting this to TRUE indicatesdevice is to reset it’s step counter to 0, where the device is to set
the flag back to FALSE upon completeion of the reset.
If present in input report, TRUE indicates the step counthas been reset since the previous input report, where a reset could
be due to either the device itself being reset or the device counterrolling over.

Data Field: Step Duration

SV

Indicates the cumulative length of time of footsteps taken since lastdevice reset.

These properties are commonly supported by personal activity sensors.
Usage Name

Usage Type

Description

Property: Minimum Activity
Detection Interval

DV

Indicates the minimum time required by the device to detect anactivity. This data field is per supported activity. Default unit ofmeasure is seconds; can be overridden using explicit Unit and/or
Unit Exponent.

Property: Supported
Activity Types

NAry

Property: Subscribed
Activity Types

NAry

Indicates the activity types which can be detected by the device.
This data field reuses the selectors mentioned in the Activity Typedata field.
Indicates the activity types which the host request to receive input
reports for. This data field reuses the selectors mentioned in the
Activity Type data field.

Property: Supported Step
Types

NAry

Property: Subscribed Step
Types

NAry

Property: Floor HeightSV

Indicates the height of a single floor. Floors are a rough distanceof height travelled during an activity. Default unit of measureis meters; can be overridden using explicit Unit and/or Unit
Exponent.

Usage Name

Usage Type

Description

Data Field: Activity Type

NAry

Indicates a type of Activity.

Activity Type: UnknownSel

The device cannot determine the current activity.

Activity Type: StationarySel

The device itself (not the user) is laying still and not moving.

Activity Type: FidgetingSel

The device detects the user is fidgeting or moving restlessly.

21.19.1

Indicates the step types which can be detected by the device. Thisdata field reuses the selectors mentioned in the Step Type data
field.
Indicates the step types which the host request to receive input
reports for. This data field reuses the selectors mentioned in the
Step Type data field.

Activity Types

272

Activity Type: Walking

Sel

The device detects the user is walking.

Activity Type: RunningSel

The device detects the user is running.

Activity Type: In Vehicle

Sel

The device detects the user is in a moving vehicle.

Activity Type: Biking

Sel

The device detects the user is riding a bike.

Activity Type: Idle

Sel

The device detects the user is idle, or not moving but still actively
using the device.

Usage Name

Usage Type

Description

Data Field: Activity State

NAry

Indicates Activity state change.

Activity State: No State Change

Sel

No State change.

Activity State: Start Activity

SelStart Activity.

Activity State: End Activity

Sel

End Activity

Usage Name

Usage Type

Description

Data Field: Device Position

NAry

Indicates a type of position or placement of the device.

Device Position: UnknownSel

The device cannot detect its current placement.

Device Position: UnchangedSel

The device’s placement has not changed since the previous report.

Device Position: On DeskSel

The user has placed the device on a desk or table.

Device Position: In Hand

Sel

The user is holding the device in their hands.

Device Position: Moving in Bag

Sel

The device is moving inside a bag.

Device Position: Stationary in
Bag

Sel

The device is stationary inside a bag.

Usage Name

Usage Type

Description

Data Field: Step Type

NAry

Indicates a type of footstep.

Step Type: UnknownSel

The device cannot determine the current step type, note that this isalso to be used if the device does not have the ability to distinguishbetween different step types.

Step Type: RunningSel

The footsteps were taken while the device user was running.

Step Type: Walking

Sel

The footsteps were taken while the device user was walking.

21.19.2

21.19.3

21.19.4

Activity State

Device Position

Step Type

273

21.20

Foldable Device Usages

Foldable device form-factors have two integrated display-panels connected by a hinge that allows a user to put the device
in various configurations to be used like a book, laptop or tablet.

Panel 1

Hinge

Panel 2
Figure 21.1: Foldable Device

21.20.1

Hinge Sensors

A hinge sensor is integrated into the chassis of foldable form-factor systems to enable the Host to detect the angle between
the two display-panels.
Usage Name

Usage Type

Description

Data Field: Hinge

SV/DV

Generic data field for hinge sensor. Vendor defined.

Data Field: Hinge Angle

SV/DV

Measures the interior hinge angle (in degrees) between two panels
in a system. This field is also used to expose absolute changesensitivity for a hinge angle sensor when used with a modifier see
Section 21.2 Modifiers

21.20.2

Gesture Sensors

Foldable form factor chassis with dual display-panels allows the user to transition to experiences where only one of thetwo sides are active. When this happens, the Host must leave only one of the two displays powered on. Sensors integrated
on both sides of the chassis can be used to provides hints along with other heuristics, to decide which displays should be
active.
Specifics of gestures like timing characteristics can change from one system to another. (e.g. a pocketable system canhave different timing specifications for when this gesture should be report and that can be different for systems that arelarger.)Instead of detecting gestures within the Host (by consuming raw data), it’s much more power efficient to have a low powerdevice attached to the Host (typically a microcontroller or on SoC sensor hub) process the sensor data and report thesegestures.
21.20.2.1

Chassis Flip Gesture

A Chassis Flip Gesture shall be reported when the entire system (inclusive of whole chassis) moves around the axis of
the hinge by 180° (i.e. user flips system to interact with the other display).

274

2

1

Figure 21.2: Chassis Flip Gesture
21.20.2.2

Hinge Fold Gesture

A Hinge Fold Gesture shall be reported when one or both panels attached by a hinge moves at least 90° with respect
to each other about the axis of the hinge (i.e. user folds panels all the way back).
There is no limit on speed of this movement as that can vary from one kind of system to another.

1

2

2

Figure 21.3: Hinge Fold Gesture
21.20.2.3

Gesture Sensor Usages

Usage Name

Usage Type

Description

Data Field: Gesture Sensor

DV

Generic data field for gesture sensor. Vendor defined.

Data Field: Hinge Fold Initial
Angle

SV

Indicates the initial value of the hinge angle when the gesture
started.

Data Field: Hinge Fold Final
Angle

SV

Indicates the final value of the hinge angle when the gesture ended.

21.20.2.4

Gesture State Usages

Chassis-Flip/Hinge-Fold gesture sensors will use the following named array to notify the host about state of a gesture.
Note: For simple gestures there may not be a need to report states other than Completed.
Usage Name

Usage Type

Description

Data Field: Gesture State

NAry

Exposes gestures from the device.

275

Gesture State: Unknown
Gesture State: Started

Sel
Sel

Gesture state is unknown.
Detected that the gesture has started.

Gesture State: Completed

Sel

Detected that the gesture has completed.

Gesture State: Cancelled

Sel

Detected that the gesture has been cancelled.

21.20.2.5

Hinge Fold Contributing Panel Usages

Hinge-Fold gesture sensors will use the following named array to notify the host about which panel contributed to thegesture.
Usage Name

Usage Type

Description

Data Field: Hinge FoldContributing Panel

NAry

Named array to indicate the panel that contributed to the foldgesture.

Hinge Fold Contributing Panel:
Unknown
Hinge Fold Contributing Panel:
Panel 1
Hinge Fold Contributing Panel:
Panel 2
Hinge Fold Contributing Panel:
Both

Sel

Unknown which panel contributed to the gesture.

Sel

Panel 1 contributed most to the fold gesture.

Sel

Panel 2 contributed most to the fold gesture

Sel

Both the panels contributed to the fold gesture

21.20.2.6

Hinge Fold Type Usages

Hinge-Fold gesture sensors will use the following named array to notify the host if the hinge is opening or closing.
Usage Name

Usage Type

Description

Data Field: Hinge Fold
Type

NAry

Named array to indicate whether the fold gesture was due to thehinge angle increasing or decreasing (opening or closing of thehinge)

Hinge Fold Type: Unknown

Sel

Unknown

Hinge Fold Type: Increasing

Sel

Hinge fold due to increasing angle (opening)

Hinge Fold Type: Decreasing

Sel

Hinge fold due to decreasing angle (closing)

276

22

Medical Instrument Page (0x40)

This page provides usage definitions for medical instruments.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02-1F
20

Medical UltrasoundReserved
VCR/Acquisition

CA

22.1

OOC

22.2

21

Freeze/Thaw

OOC

22.2

22

Clip Store

OSC

22.2

23

Update

OSC

22.2

24
25
26
27

Next
Save
Print
Microphone Enable

OSC
OSC
OSC
OSC

22.2
22.2
22.2
22.2

28-3F
40
41
42
43
44

Reserved
Cine
Transmit Power
Volume
Focus
Depth

LC
LC
LC
LC
LC

22.2
22.2
22.2
22.2
22.2

45-5F
60

Reserved
Soft Step - Primary

LC

22.2

61

Soft Step - Secondary

LC

22.2

62-6F
70

Reserved
Depth Gain Compensation

LC

22.3

71-7F
80
81

Reserved
Zoom SelectZoom Adjust

OSC
LC

22.4
22.4

82

Spectral Doppler Mode Select

OSC

22.4

83

Spectral Doppler Adjust

LC

22.4

84

Color Doppler Mode Select

OSC

22.4

85

Color Doppler Adjust

LC

22.4

86
87

Motion Mode SelectMotion Mode Adjust

OSC
LC

22.4
22.4

88
89

2-D Mode Select2-D Mode Adjust

OSC
LC

22.4
22.4

8A-9F
A0
A1

Reserved
Soft Control SelectSoft Control Adjust

OSC
LC

22.4
22.4

A2-FFFF

Reserved
Table 22.1: Medical Instrument Page

277

22.1

Ultrasound Devices

Usage Name

Usage Type

Description

MedicalUltrasoundCA

An application-level collection that identifies a device containing ultrasoundcontrols, used for medical diagnostics.

278

22.2

Acquisition Controls

Usage Name

Usage Type

Description

VCR/Acquisition

OOC

Toggles display between playback (VCR) and live acquisition modes.

Freeze/Thaw

OOC

Toggles display between Pause and Play (Thaw) or Acquire and Hold
(Freeze).

Clip StoreOSCStore Ultrasound Frames.

UpdateOSC

Forces an update of the image on the screen.

Next

OSC

Next Caliper. Calipers are user controllable cursors on the display that canbe positioned to provide measurements. When asserted this usage deselects
the current caliper and selects the next.

Save

OSC

Save the Ultrasound Image.

Print

OSC

Print the Ultrasound Image.

Microphone Enable

OOC

Toggles Dictation Microphone Enable.

Cine

LC

Steps through acquisition frames.

Transmit PowerLC

VolumeLC

Adjusts overall ultrasound transmitter power between minimum andmaximum values.
Adjust ultrasound monitor-speaker volume.

Focus

LC

Adjusts ultrasound beam focus.

Depth

LC

Adjusts ultrasound window depth between minimum and maximum values.

Soft Step - PrimaryLC

Primary programmable toggle/adjustment control for menu items.

Soft Step - Secondary

LC

Secondary programmable toggle/adjustment control for menu items.

279

22.3

Signal Modulation

Usage Name

Usage Type

Description

Depth Gain
CompensationLC

A Logical Collection containing sliders used for adjusting signal strength at various
depths. e.g. If 6 sliders are contained in the Dept Gain Compensation collection
then displayed echo scan depth will be divided into equal 6 slices, where the gain
associated with each slice is controlled by the respective slider. The first slider
declared in the report descriptor controls the slice closest to the sensor.

280

22.4

Acquisition and Display Mode Controls

A device defines individual Adjust controls for each mode. These controls may always be enabled or they may requirethat a Select control be asserted to enable them.
Usage Name

Usage Type

Description

Zoom SelectOSC

Selects Zoom Adjustment Mode, enables the zoom adjust control.

Zoom Adjust

LC

Adjusts Zoom value or magnification.

Spectral Doppler
Mode SelectOSC

Spectral Doppler
Mode Adjust

LC

Enables Spectral Doppler Mode. Spectral Doppler Mode displays all of thefrequency content at a specified position. When the mode is entered the user
will select a point on the echo image for Spectral Doppler acquisition. The
display is shared between Spectral Doppler output and echo image. Verticalcolumns of the Spectral Doppler output represent the frequency spectrum of
the selected point. The Spectral Doppler output might be a snapshot in timeor a trace that varies over time.
Adjusts sensitivity of Spectral Doppler Mode output.

Color Doppler Mode
SelectOSC

Enables Color Doppler Mode. Color Doppler Mode superimposes positional
Doppler information on the echo image, providing the instantaneous displayof maximum velocity at each image sample point.

Color Doppler Mode
AdjustLC

Adjusts sensitivity the Color Doppler effect.

Motion Mode SelectMotion Mode Adjust

OSC
LC

Enables Motion Mode.
Adjusts sensitivity of Motion Mode output

2-D Mode SelectOSC

Selects 2-D Mode. 2-D Mode is the classic ultrasound echo image.

2-D Mode Adjust

LC

Adjusts sensitivity of 2-D Mode output.

Soft Control Select

OSC

Enables Soft Control Adjust and can be used to step through various modeparameters that can be adjusted.

Soft Control Adjust

LC

Programmable adjustment. This control allows additional parameters
associated with the current mode to be adjusted.

281

23

Braille Display Page (0x41)

Braille display allow visually impaired computer users to read out text using raised pins. The pins are electro-mechanically
activated. These devices also have support for controls that help navigate the computer screen. Typically, braille displays
interface with software known as a screen reader in order to perform this navigation.
Usage ID

Usage Name

Usage Types

Section00

Undefined

01

Braille Display

CA

23.1

02

Braille Row

NAry

23.2

03
04
05
06

8 Dot Braille Cell
6 Dot Braille Cell
Number of Braille Cells
Screen Reader Control

DV
DV
DV
NAry

23.2
23.2
23.2
23.5

07
08-F9
FA

Screen Reader Identifier
Reserved
Router Set 1

DV

23.6

NAry

23.3

FB

Router Set 2

NAry

23.3

FC

Router Set 3

NAry

23.3

FD-FF
100

Reserved
Router Key

Sel

23.3

101

Row Router Key

Sel

23.3

102-1FF
200

Reserved
Braille Buttons

NAry

23.4

201

Braille Keyboard Dot 1

Sel

23.4

202

Braille Keyboard Dot 2

Sel

23.4

203

Braille Keyboard Dot 3

Sel

23.4

204

Braille Keyboard Dot 4

Sel

23.4

205

Braille Keyboard Dot 5

Sel

23.4

206

Braille Keyboard Dot 6

Sel

23.4

207

Braille Keyboard Dot 7

Sel

23.4

208

Braille Keyboard Dot 8

Sel

23.4

209

Braille Keyboard Space

Sel

23.4

20A

Braille Keyboard Left Space

Sel

23.4

20B

Braille Keyboard Right Space

Sel

23.4

20C

Braille Face Controls

NAry

23.4

20D

Braille Left Controls

NAry

23.4

20E

Braille Right Controls

NAry

23.4

20F

Braille Top Controls

NAry

23.4

210

Braille Joystick Center

Sel

23.4

211

Braille Joystick Up

Sel

23.4

212

Braille Joystick Down

Sel

23.4

213

Braille Joystick Left

Sel

23.4

282

214

Braille Joystick Right

Sel

23.4

215
216

Braille D-Pad Center
Braille D-Pad Up

Sel
Sel

23.4
23.4

217
218
219

Braille D-Pad Down
Braille D-Pad Left
Braille D-Pad Right

Sel
Sel
Sel

23.4
23.4
23.4

21A
21B

Braille Pan Left
Braille Pan Right

Sel
Sel

23.4
23.4

21C

Braille Rocker Up

Sel

23.4

21D
21E
21F-FFFF

Braille Rocker Down
Sel
Braille Rocker Press
Sel
Reserved
Table 23.1: Braille Display Page

283

23.4
23.4

23.1

Braille Display Device

Usage Name

Usage Type

Description

BrailleDisplayCA

A device that is used by the visually impaired to read and/or write from a hostcomputer.

284

23.2

Braille Cells

The Braille display consists of an array of individual cells. Each cell consists of either 6 or 8 raised or not raised dots.
These controls are for the activation of individual dots.
Usage Name

Usage Type

Description

Braille Row

NAry

A row of contiguous braille cells ordered left to right. This collection
contains braille cells and their corresponding router keys.

8 Dot Braille Cell

DV

A braille cell containing dots 1 through 8. Each cell contains a Braillepattern with 1 representing a raised dot and 0 a not raised dot.
The pattern of dots used should be in accordance to ISO/TR 11548-1
Communication aids for blind persons1 .

6 Dot Braille Cell

DV

A braille cell containing dots 1 through 6. Each cell contains a Braillepattern with 1 representing a raised dot and 0 a not raised dot.
The pattern of dots used should be in accordance to ISO/TR 11548-1
Communication aids for blind persons1 .

Number of Braille Cells

DV

Some braille displays dynamically reserve a portion of a braille row
for display specific behavior, for example showing the progress of a filetransfer. For example, a 20 cell display might reserve 4 cells. If this usage
was set to 16, then cells 17 through 20 would be ignored by the brailledisplay

1 http://www.unicode.org/versions/Unicode5.2.0/ch15.pdf

285

23.3

Routers

Each cell in a Braille display may have router buttons above or below it. They are typically used for moving the insertion
cursor position. Some displays use a second row of router keys.
Typically these buttons perform actions on the item represented by the corresponding braille cell.
Usage Name

Usage Type

Description

Router Set 1

NAry

Primary router. Performs the same action as Button 1, Primary Button would
perform with a pointer device.

Router Set 2

NAry

Secondary Router. Performs the same action as Button 2, Secondary Button
would perform with a pointer device.

Router Set 3

Nary

Tertiary Router. Performs the same action as Button 3, Tertiary Button would
perform with a pointer device.

Router Key

Sel

A router key above or below a braille cell. Ordered closest to the braille cell, tofurthest away.

Row Router Key

Sel

A router key on the left or right side of a row of braille cells.

286

23.4

Braille Buttons

Usage Name

Usage Type

Description

Braille Buttons

NAry

Braille keyboards typically have 6 or 8 Buttons corresponding toBraille Dots 1-8, and a Space Bar used for braille input.

Braille Keyboard Dot 1

Sel

Braille Keyboard Dot 2

Sel

Braille Keyboard Dot 3

Sel

Braille Keyboard Dot 4

Sel

Braille Keyboard Dot 5

Sel

Braille Keyboard Dot 6

Sel

Braille Keyboard Dot 7

Sel

Braille Keyboard Dot 8

Sel

Braille Keyboard Space

Sel

Braille Keyboard Left Space

Sel

Braille Keyboard Right Space

Sel

Braille Face Controls

NAry

Braille Left Controls

NAry

Braille Right Controls

NAry

Braille Top Controls

NAry

Braille Joystick Center

Sel

Braille Joystick Up

Sel

Braille Joystick Down

Sel

Braille Joystick Left

Sel

Braille Joystick Right

Sel

Braille D-Pad Center
Braille D-Pad Up

Sel
Sel

Braille D-Pad Down
Braille D-Pad Left
Braille D-Pad Right

Sel
Sel
Sel

Braille Pan Left
Braille Pan Right

Sel
Sel

Braille Rocker Up

Sel

Braille Rocker Down
Braille Rocker Press

Sel
Sel

A collection of controls located on the front face of a braille display.
This collection contains Button Page or Braille Page usages as
selectors.
A collection of controls located on the left side of a braille display’s
cells. This collection contains Button Page or Braille Page usages as
selectors.
A collection of controls located on the right side of a braille display’s
cells. This collection contains Button Page or Braille Page usages as
selectors.
A collection of controls centered above the braille display’s cells. This
collection contains Button Page or Braille Page usages as selectors.

287

23.5

Screen Reader Control

Usage Name

Usage Type

Description

ScreenReaderControl

NAry

Screen Reader specific functions. This collection contains usages from the Button
usage page. Screen Reader Controls 1 through n are represented by Button page
usages 1 through n, respectively.

288

23.6

Screen Reader Identifier

Usage Name

Usage Type

Description

Screen Reader
IdentifierDV

A 128 bit UUID identifying the active screen reader which is being interfaced with
the Braille display. This identifier may be optional observed by the braille display
to infer the behavior of Screen Reader Controls.
A screen reader would set this usage when interfacing with a braille display.
Separately, as part of its documentation, the screen reader would document the
UUID used to identify itself, as well as a list of screen reader functions whichcorrespond to Screen Reader Controls 1 through n.
If this identifier is 0, or unknown to the braille display, the braille display
should assume that Screen Reader Controls are not supported by the screen reader.

289

24

Lighting And Illumination Page (0x59)
Usage ID

Usage Name

Usage Types

Section00

Undefined01

LampArray

CA

24.1

02

LampArrayAttributesReport

CL

24.2

03

LampCount

SV/DV

24.2

04

BoundingBoxWidthInMicrometers

SV

24.2

05

BoundingBoxHeightInMicrometers

SV

24.2

06

BoundingBoxDepthInMicrometers

SV

24.2

07

LampArrayKind

SV

24.2

08

MinUpdateIntervalInMicroseconds

SV

24.2

09-1F
20

Reserved
LampAttributesRequestReport

CL

24.3

21

LampId

SV/DV

24.3

22

LampAttributesResponseReport

CL

24.3

23
24
25
26

PositionXInMicrometers
PositionYInMicrometers
PositionZInMicrometers
LampPurposes

DV
DV
DV
DV

24.3
24.3
24.3
24.3

27

UpdateLatencyInMicroseconds

DV

24.3

28
29
2A
2B

RedLevelCount
GreenLevelCountBlueLevelCount
IntensityLevelCount

DV
DV
DV
DV

24.3
24.3
24.3
24.3

2C

IsProgrammable

DV

24.3

2D

InputBinding

DV

24.3

2E-4F
50

Reserved
LampMultiUpdateReport

CL

24.4

51

RedUpdateChannel [67]

DV

24.4

52

GreenUpdateChannel [67]

DV

24.4

53

BlueUpdateChannel [67]

DV

24.4

54

IntensityUpdateChannel [67]

DV

24.4

55

LampUpdateFlags [67]

DV

24.4

56-5F
60

Reserved
LampRangeUpdateReport

CL

24.4

61

LampIdStart

DV

24.4

62

LampIdEnd

DV

24.4

63-6F
70

Reserved
LampArrayControlReport

CL

24.5

71
72-FFFF

AutonomousMode
Reserved

DV

24.5

290

24.1

Application Usages

Usage Name

Usage Type

Description

LampArray

CA

Applied to a collection containing LampArray attributes and reports.

291

24.2

LampArray Attributes Report

Usage Name

Usage Type

Description

LampArrayAttributesReport

CL

Applied to a collection containing the device attributes of a
LampArray.

LampCount

SV/DV

Number of Lamps associated with a LampArray (SV), or thenumber of Lamps being set in a LampMultiUpdateReport (DV).

BoundingBoxWidthInMicrometers

SV

Width (X axis) of a logical bounding-box encompassing thedevice. Must be a positive offset from the origin.

BoundingBoxHeightInMicrometers

SV

Height (Y axis) of a logical bounding-box encompassing thedevice. Must be a positive offset from the origin.

BoundingBoxDepthInMicrometers

SV

Depth (Z axis) of a logical bounding-box encompassing thedevice. Must be a positive offset from the origin.

LampArrayKind

SVKind of LampArray. Must be one of the values defined in Table
24.2.1 LampArrayKind Values

MinUpdateIntervalInMicroseconds

SV

Minimal time interval required between the Host sending two
updates for any one Lamp.

24.2.1

LampArrayKind Values

Name

Description

Value

Undefined

Undefined00

LampArrayKindKeyboard

LampArray is part of a keyboard/keypad device01

LampArrayKindMouse

LampArray is part of a mouse

02

LampArrayKindGameController

LampArray is part of a game-controller.
flightstick, sailing simulation device)

gamepad,03

LampArrayKindPeripheral

LampArray is part of a general peripheral/accessory (e.g.
speakers, mousepad, microphone, webcam)

04

LampArrayKindScene

LampArrayilluminatesaroom/performance-stage/area(e.g. room light-bulbs, spotlights, washlights, strobelights,
booth-strips, billboard/sign, camera-flash)05

LampArrayKindNotification

LampArray is part of a notification device

06

LampArrayKindChassis

LampArray is part of an internal PC case component (e.g.
RAM-stick, motherboard, fan)07

LampArrayKindWearable

LampArray is embedded in a wearable accessory (audio-headset,
wristband, watch, shoes)08

LampArrayKindFurniture

LampArray is embedded in a piece of funiture (e.g. chair, desk,
bookcase)09

LampArrayKindArt

LampArray is embedded in an artwork (e.g. painting, sculpture)

0A

Reserved
Vendor-DefinedReserved
Vendor-Defined

0B-FFFF
10000-FFFFFFFF

292

(e.g.

24.3

Lamp Attributes Report

Usage Name

Usage Type

Description

LampAttributesRequestReportCL

LampAttributesResponseReport

CL

Applied to a collection containing a LampId to request
attributes for.
Applied to a collection containing attributes corresponding toa requested LampId.

LampIdSV/DV

Id of a Lamp. Valid range is between 0 and (LampCount– 1). (SV) if in a LampAttributesReport, (DV) if in a
Lamp*UpdateReport

PositionXInMicrometers

DV

X position (corresponding to Bounding Box Width) fromoriginPositionYInMicrometers

DV

Y position (corresponding to Bounding Box Height) fromoriginPositionZInMicrometers

DV

Z position (corresponding to Bounding Box Depth) fromoriginLampPurposes

DV

Purpose/s of a Lamp. Must be one or more flags from tablein Table 24.3.1 LampPurposes Flags

UpdateLatencyInMicroseconds

DVTime interval between the device receiving an update for a
Lamp and it emanating from the device.

RedLevelCountDV

The number of red color intensities settable for this LampId.

GreenLevelCountDV

The number of green color intensities settable for this LampId.

BlueLevelCountDV

The number of blue color intensities settable for this LampId.

IntensityLevelCountDV

The number of color independent intensities settable for this
LampId.

IsProgrammableDV

1 if this Lamp has programmable colors, 0 if it doesn’t.

InputBinding

DV

Keyboard* Usages from Section 10 Keyboard/Keypad Page
(0x07) or Button* Usages from Section 12 Button Page
(0x09)

24.3.1

LampPurposes Flags

Note: Flags are permitted to be combined. Lacking any flags for this field (i.e. 0) is undefined.
Name

Description

Value

LampPurposeControl

Control Lamp (e.g. button/key/slider etc...)01

LampPurposeAccent

Accent Lamp that doesn’t interact with the user (e.g. case fan LED,
illuminated side panels on a keyboard)

02

LampPurposeBranding

Device branding (e.g. Manufacturer logo)04

LampPurposeStatus

Status Lamp (e.g. unread email, CPU temperature)08

LampPurposeIllumination

Illuminates an object that is outside of the LampArray (e.g. stage
spotlight, car headlights, camera flash)

10

LampPurposePresentation

A Lamp the user directly looks at (e.g. within an artwork or costume)

20

Reserved
Vendor DefinedReserved
Vendor Defined

40-FFFF
10000-FFFFFFFF

293

24.4

Lamp Update Reports

Usage Name

Usage Type

Description

LampMultiUpdateReport

CL

Applied to a collection containing updates for multiple Lamps, each
Lamp specified can have a different color.

LampRangeUpdateReport

CL

Applied to a collection containing a single range update consistingof color channels and LampIdStart/LampIdEnd. All Lamps within
range are set to the same color.

RedUpdateChannel

DV

Red intensity of the new color for this LampId. Ignored unlessLamp IsProgrammable is true.

GreenUpdateChannel

DV

Green intensity of the new color for this LampId. Ignored unlessLamp IsProgrammable is true.

BlueUpdateChannel

DV

Blue intensity of the new color for this LampId. Ignored unlessLamp IsProgrammable is true.

IntensityUpdateChannel

DV

Intensity/gain overall of the new color for this LampId.

LampUpdateFlags

DV

Flags associated with a Lamp*Update message. See Table 24.4.1
LampUpdate Flags

LampIdStart

DV

The first LampId in the range of LampIds to update.

LampIdEnd

DV

The last LampId in the range of LampIds to update.

24.4.1

LampUpdate Flags

Name

Description

Value

LampUpdateComplete

Signals that this was the last update in a batch of updates. Device should now
process all precceding messages as a single update to Lamp state.

01

Reserved

Reserved

02-FFFF

294

24.5

LampArray Control Report

Usage Name

Usage Type

Description

LampArrayControlReport

CL

Applied to a collection containing LampArray control fields.

AutonomousMode

DV

Boolean value indicating whether the device can set Lamp state
itself/autonomously (i.e. without the Host sending Lamp update
messages). Default value is enabled/true.

295

24.6

LampArray Operation

Typical LampArray operation has several phases;• Interrogation of LampArray device attributes.
• Interrogation of individual Lamp attributes.
• Disabling AutonomousMode on the device.
• Updating Lamp state.
• Enabling AutonomousMode on the device.
While it is not required that these phases are done in order (and no device should ever assume it), as we outline below,
it should be clear that this is the most reasonable practice for a Host. See Figure LampArray Operation.
Note: Retrieval of Lamp colour state is not outlined since state is controlled exclusively by the Host which
always knows the state it last set the device to. Future additions to this specification may include setting
persistent state and its retrieval.
• Distance measurements to be given in micrometers (μm). For a signed 32bit integer (largest supported by HID),
this gives a range from 1μm to >2km, which seems sufficient to describe any device.
• Time measurements to be given in microseconds (μs). For a signed 32bit integer (largest supported by HID), thisgives a range from 1μs to >30minutes)
Host

Device
GetReport(LampArray AttributesReport)
LampArrayAttributesReport
SetReport(LampAttributes RequestReport(LampId))

forall LampIds
GetReport(LampAttributes ResponseReport)
LampAttributesResponseReport(LampId)

SetReport(LampArrayControlReport(AutonomousMode == disabled))

SetReport(LampMultiUpdateReport(LampUpdateComplete == false))
SetReport(LampMultiUpdateReport(LampUpdateComplete == false))
SetReport(LampRangeUpdateReport(LampUpdateComplete == false))
SetReport(LampMultiUpdateReport(LampUpdateComplete == true))

SetReport(LampArrayControlReport(AutonomousMode == enabled))
Figure 24.1: LampArray Operation

296

24.7

LampArray Attributes and Interrogation

Every LampArray is expected to have attributes describing the physical device that contains the LampArray. This includes
the number of Lamps (LampCount), the kind of LampArray and dimensions of a logical bounding box. These values are
static and can never change. LampArrayAttributesReport is used to retrieve these attributes.
LampArrayKind describes the type of physical device that contains the LampArray (e.g. keyboard/mouse/gamecontroller...).
This helps the Host know what Lamp Attributes it can expect and associate it with other HID devices (keyboard/mouse).
The kind must use one of LampArrayKind* values from Table 24.2.1 LampArrayKind Values.
BoundingBox*InMicrometers describes a logical box encompassing the physical device. Origin (0,0,0) is that of theright-hand coordinate system (as prescribed in the HID spec 5.9 Orientation1 ) which denotes the upmost, farthest,
left-hand corner of the box. This box is used to provide the bounds of the device (without the detail/complexity of a true
3D model) and to provide a reference origin for Lamp coordinates. All sizes/coordinates/positions are thus positive offsetsfrom this origin.
The dimensions and coordinate system is illustrated below with a typical keyboard and mouse in Figure 24.2, Figure 24.3
respectively.
In particular, notice:• Width is always perpendicular to the user when this keyboard/mouse is naturally orientated.
• Origin (0,0,0) is not flush with the corner of the keyboard as the device has a curved rise in the middle.
• Origin (0,0,0) is nowhere near the mouse body.

Figure 24.2: Keyboard with labeled dimensions and origin. Lamps exist beneath every key, the branding at the top/middle,
and accent lighting along the left and right sides. Example sizes given for each dimension (in μm).
1 https://usb.org/sites/default/files/documents/hid1_11.pdf

297

Figure 24.3: Mouse with labeled dimensions and origin. Example sizes given for each dimension (in μm).
MinUpdateIntervalInMicroseconds is the minimal time interval required for the Host to wait before sending two updates
for any one Lamp. This is to prevent the Host overwhelming the device by sending too many Lamp*UpdateReports tooquickly. A device must be able to accommodate updating every Lamp (individually) before requiring the Host to wait
for the interval. This means a device must be able to receive and process (consecutively) the minimum number of
LampMultiUpdateReports required to update all Lamps. This is so the Host knows it can update every Lamp on the device
before waiting for the interval. If a Host misbehaves and sends more reports than allowed before waiting for the interval,
the device can ignore those reports.
For example, a device where LampArrayAttributes:LampCount==40 and LampMultiUpdate:LampCount==8, requires a minimumof (40/8=5) LampMultiUpdateReports; so 5 reports must be accepted before the Host is required to wait the interval.

298

24.8

Lamp Attributes and Interrogation

24.8.1

LampAttributesRequestReport

Having retrieved the LampCount, interrogation of a Lamp begins by the Host sending a LampAttributesRequestReport (viaSetReport) with the LampId of the first Lamp to interrogate. Each Lamp must have a unique LampId, numbered from 0 to
LampCount-1 (inclusive). Lamps without a LampId cannot be referenced and must not be included in the LampArray. An
invalid LampId, must be treated by the device as LampId==0.
It is recommended that LampIds are assigned to Lamps in a methodical manner (e.g. grid, starting from top-left) to takethe most advantage of the LampRangeUpdateReport described below. This can significantly reduce traffic overhead of the
update.

24.8.2

LampAttributesResponseReport

The Host then requests a LampAttributesResponseReport (via GetReport) to which the device returns the attributes ofthe previously requested LampId.
Upon a successful response, the device will automatically (and internally) increment the previously sent LampId such thatthe next time the Host sends a LampAttributesResponseReport, the device will return the attributes of the LampId+1
Lamp. Further requests monotonically increase the previous LampId.
After LampId==LampCount-1, the device will reset the internal LampId to 0, and continue to monotonically increase after eachsuccessful response. In this way a Host need only send a single LampAttributesRequestReport for the first LampId to inspect(e.g. 0), then request multiple LampAttributesResponseReports; one for each further Lamp to inspect. Alternatively, a
Host can explicitly send a LampAttributesRequestReport before each LampAttributesResponseReport instead of taking
advantage of the automatic device increment; or a mix of the two patterns.
The default internal LampId is 0.
The Host must always check the LampId of the returned report to ensure it was expected (as an invalid LampId will always
be treated as LampId==0)
24.8.2.1

ExampleSample operations of LampArray with 6 Lamps. Observe (#1-8) how the Host sets the LampId and then can receive multiple
Response reports where the LampId increments by 1 each time until it resets to 0. Additionally see (#9-14) that the Hostcan still explicitly request which Lamp it should receive attributes for (e.g. if the Host wishes to request Lamps out oforder).
#

ReportType

Direction

LampId1

LampAttributesRequestReport

OUT

0

2

LampAttributesResponseReport

IN

0

3

LampAttributesResponseReport

IN

1

4

LampAttributesResponseReport

IN

2

5

LampAttributesResponseReport

IN

3

6

LampAttributesResponseReport

IN

4

7

LampAttributesResponseReport

IN

5

8

LampAttributesResponseReport

IN

0

9

LampAttributesRequestReport

OUT

2

10

LampAttributesResponseReport

IN

2

11

LampAttributesRequestReport

OUT

4

12

LampAttributesResponseReport

IN

4

13

LampAttributesResponseReport

IN

5

14

LampAttributesResponseReport

IN

0

299

24.8.3

Lamp Attributes

All Lamp attributes are static and can never change across device resets or external events.
PositionX/Y/Z describes the location of the Lamp (in 3D space) relative to the bounding-box origin defined in 24.7. Suchdata is useful for the Host when creating effects (e.g. animation moving from left to right). All Lamps are assumed to bea single, dimensionless point of zero size.
LampPurposes identifies the high-level purpose/s of the Lamp. This helps the Host determine what scenarios the Lamp canbe used. The value must be composed of one or more LampPurposes* flags described in the Table 24.3.1 LampPurposes
Flags .
In the figures below we can see Lamps with different LampPurposes labeled with example X/Y/Z positions.

Figure 24.4: Keyboard control lamp under the esc key. Position of lamp relative to the bounding box (described above)labeled in μm.

300Figure 24.5: Keyboard branding lamp under the logo. Position of lamp relative to the bounding box (described above)labeled in μm.

Figure 24.6: Accent lamp on the LHS (part of accent lighting). Position of lamp relative to the bounding box (describedabove) labeled in μm.

301

UpdateLatencyInMicroseconds describes the smallest time interval between a device receiving a Lamp*UpdateReport andthe state emanating from the device. This includes the time spent processing the report and the update latency of thespecific Lamp (e.g. LEDs switch faster than incandescent lamps). This must be determined by the manufacturer andan upper bound given from a Lamp being completely off to any color intensity. This allows a Host to coordinate effects
between multiple devices. It is expected (though not required) that this value will be identical for all Lamps of the same
electrical/mechanical type on a device.
InputBinding associates a Lamp with either a keyboard/keypad key or a mouse button. This is to support today’s common
case of keyboards/mice with individually backlit keys/buttons. If the LampArrayKind declares the device as a keyboard,
InputBinding must use one of the unsigned 16bit Keyboard* Usages from the Keyboard/Keypad Page (0x07). If declared
as a mouse, InputBinding must use one of the unsigned 16bit Button* Usages from the Button Page (0x09) in the rangeof Button1 (0x01) to Button5 (0x05) inclusive. No more than 5 buttons are supported for any mouse.
If a key/button is not associated with this Lamp or it is not declared as either a keyboard or mouse, this value must be
0; non-zero values must be ignored by the Host.

302

24.9

Color Attributes

LampArrays support both FixedColor and Programmable Lamps. For Programmable Lamps (indicated by IsProgrammable==1),*LevelCount values indicate the levels of intensity supported by the red, green, and blue color channels, each of which canbe varied independently. Zero indicates an off state, and non-zero values indicate varying levels of color intensity. For
example:• A value of zero indicates that the color channel is not supported.
• A value of one indicates that the only intensities supported for the color channel are fully on and fully off.
• A value of 10 indicates that ten levels of intensity are supported, in addition to being turned off.
The highest non-zero intensity level corresponds to the maximum possible brightness for that color channel. Intensity
values map as closely as possible to a visually linear brightness curve.
IntensityLevelCount indicates how many levels of overall intensity are supported for a Lamp. Zero indicates an off state,
and non-zero values indicate varying levels of overall intensity/gain for a Lamp. Any number of intensity levels >1 is
supported. The highest non-zero intensity value corresponds to unity gain (maximum intensity), with intermediate values
describing relative linear gain.
FixedColor Lamps (IsProgrammable==0) have a single fixed color at maximum intensity described by the relative color
intensities of RedLevelCount, GreenLevelCount, BlueLevelCount. IntensityLevelCount can optionally be described (tovary overall intensity), but minimally most support 0 (off), 1 (on); intermediate intensity levels are scaled.

24.9.1

Color Attributes Examples

The table below illustrates examples of programmable Lamps, and how they are expressed via RedLevelCount,
GreenLevelCount, BlueLevelCount, IntensityLevelCount.
Red

Green

Blue

Intensity

Meaning

1

1

0

1

1

0

1

32

16

16

0

1

A red/green lamp that supports 256 unique colors.

255

255

255

1

An RGB lamp that supports 16,777,216 unique colors.

A lamp that can be red, yellow, or green. The only intensities available are on
or off.
A lamp that can be red, blue, or purple. The overall intensity of the lamp can be
set to one of 32 levels, but the relative intensity of the red/blue channels cannot.

303

24.10LampArrayControlReport

This report is defined to control various device-wide settings. All settings are non-persistent unless explicitly marked.

24.10.1

AutonomousMode

AutonomousMode is a boolean field indicating whether the device can decide whether/how to update Lamps itself, or if
the Host has the exclusive ability to set/update the Lamp state. No source other than the Host can modify Lamp state
while field is disabled/false. When enabled/true, the Lamp state can be set by other sources (e.g. Lamp state set manually
on device or reverts to an embedded default effect) and any Lamp*UpdateReports can be ignored. Default state for thisfield is enabled/true. The device must always handle LampArrayAttributesReports, LampAttributesRequestReports,
LampAttributesResponseReports, regardless of this field state.
When disabled, only the Host may change the Lamp state (via Lamp*UpdateReports). Once disabled (and was previously
enabled, but before sending Lamp*UpdateReports) the device must pause any playing effect it started and maintain Lamps
to whatever was last set by the device (e.g. if displaying solid blue in autonomous mode, once disabled, solid blue must
persist). If the field was previously enabled (and is set to enabled again), it is a no-op. Similarly, disabling when alreadydisabled is a no-op.
After the field is disabled, sent Lamp*UpdateReports will change the Lamp state from the last device-set state. It is
up to the Host to override the persisted state by sending Lamp*UpdateReports. The Host with guarantee to wait for
MinUpdateIntervalInMicroseconds before sending its first Lamp*UpdateReport.
If this field is absent, it means no autonomous mode is supported. If supported, the device should default to enabled/true.

30424.11

Updating Lamp State

Two reports are defined (LampMultiUpdateReport, LampRangeUpdateReport) to accommodate expected classes of updates.
Both updates are non-persistent, such that if a device loses power, or is moved to a different Host, the Lamp returns to it’sdefault state. Default state for all Lamps is off (RGBI=0,0,0,0).
Update reports can contain flags (LampUpdateFlags) to describe the update; currently, LampUpdateComplete is the only
valid flag. LampUpdateComplete is set by the Host when the report is the last update in a batch of updates, and thedevice should alter the Lamp states all at once. Devices can wait until an update with this flag has been received
before applying any of the previous updates. The Host guarantees to not send more than 1 update with this flag every
MinUpdateIntervalInMicroseconds.

24.11.1

LampMultiUpdateReport

LampMultiUpdateReport updates the color of multiple Lamps in a single request, where all four channels (Red/Green/Blue/
Intensity) can be set at once for given Lamps. The MaxLogicalSize of the LampCount Usage in the descriptor defines thenumber of available update-slots. Within the report, LampCount identifies the number of update slots to be examined(starting from the first slot). LampIds do not have to be ordered (e.g. ascending), but update-slot position identifies
corresponding RGBI tuple. Update-slots must always be filled from 0 to max(LampCount). Any unused slot must be
ignored by the device. (It is recommended the Host set both the LampId and the corresponding channel intensities to 0).
For FixedColor Lamps, only the Intensity channel is examined by the device (i.e. Red/Green/Blue channels are always
ignored; as a best practice these channels should always be set to 0 by the Host).
If any error is detected by the device in the report, the device shall ignore the entire report. Errors include:• Any LampId >= Device LampCount• *Channel > *LevelCount described by Lamps’ attributes. (e.g. if a Lamp had RedLevelCount==100 and an update
set the channel to 101)
• Identical LampId in multiple slots.
Note: In the example below is a LampMultiUpdateReport which has 8 update slots and declares it has 5 Lamps
to update; slots 6/7/8 are hence ignored by the device. LampId#1 (0x19) corresponds to RGBI tuple #1 (FF
00 FF 80) etc...

LampCount

0x05

LampId #1

0x19

LampId #2

0x23

LampId #3

0x72

LampId #40x56

LampId #5

0x64

LampId #6

ignoredLampId #7

ignoredLampId #8

ignoredRGBI tuple #1

0xFF 0x00 0xFF 0x80

RGBI tuple #2

0x80 0x80 0xFF 0xFF

RGBI tuple #3

0x00 0x00 0x80 0xFF

RGBI tuple #4

0xFF 0x80 0x00 0x80

RGBI tuple #5

0xFF 0xFF 0x00 0xFF

RGBI tuple #6

ignoredRGBI tuple #7

ignoredRGBI tuple #8

ignored305

24.11.2

LampRangeUpdateReport

LampRangeUpdateReport allows multiple Lamps to be updated based on the range between two LampIds. LampIdStart and
LampIdEnd are both included in the range. The single Red/Green/Blue/Intensity color is applied to every Lamp within therange. A common use-case for range to turn all Lamps off (LampIdStart==0, LampIdEnd==(LampCount-1), RGBI==0).
For FixedColor Lamps, Red/Green/Blue channels are always ignored.
If any error is detected by the device in the report, the device shall ignore the entire report. Errors include:• LampIdStart >LampIdEnd• LampIdStart OR LampIdEnd >= Device LampCount• *Channel >*LevelCount described by any Lamps’ attributes within the range. (i.e. The Host must ensure all Lamps
in the described range support the desired channel intensities)
FixedColor Lamps may be mixed with Programmable Lamps within the range so long as the desired IntensityUpdateChannel
is within range. RGB channels for FixedColor Lamps will be ignored.
Note: In the example below, all Lamps between (and including) LampId=0x19 to LampId=0x31 are set to thecorresponding RGBI value (0xFF 0x00 0x00 0xFF).

LampIdStart

0x19

LampIdEnd

0x31

RGBI tuple

0xFF 0x00 0x00 0xFF

306

25

Camera Control Page (0x90)
Usage ID

Usage Name

Usage Types

Section00

Undefined

01-1F
20

Reserved
Camera Auto-focus [21]

OSC

25.1

21

Camera Shutter [21]

OSC

25.1

22-FFFF

Reserved
Table 25.1: Camera Control Page

307

25.1

Camera Controls

Usage Name

Usage Type

Description

Camera Auto-Focus
Camera Shutter

OSC
OSC

Activate the camera auto-focus.
Capture a still picture or start/stop video recording.

308

26

Gaming Device Page (0x92)

The Gaming Standards Association (GSA) has been given this page for itself, to be used by implementer’s of it’s own
standard for USB gaming peripherals.
https://www.gamingstandards.com/

309

27

FIDO Alliance Page (0xF1D0)

The FIDO (Fast IDentify Online) Alliance page provides usage definitions for devices that include Authentication featurescompliant with FIDO Alliance standards. The specification is available on the FIDO Alliance website1 .
Usage ID

Usage Name

Usage Types

Section00

Undefined

01
02-1F
20

U2F Authenticator Device
Reserved
Input Report Data

CA

27.1

DV

27.1

21

Output Report Data

DV

27.1

22-FFFF

Reserved
Table 27.1: Fast IDentity Online Alliance Page

1 https://fidoalliance.org/specs/fido-u2f-v1.0-ps-20141009/fido-u2f-hid-protocol-ps-20141009.html

310

27.1

Application Usages

Usage Name

Usage Type

Description

U2F Authenticator DeviceCA

A device that provides 2nd factor authentication using the FIDOU2FHID protocol.

Input Data Report

DV

Device response
specification.

Output Data Report

DV

Device request data compliant with U2FHID Protocol specification.

311

data

compliant

with

U2FHID

ProtocolA

Indices for 8bit Preferred Colors
Index
0
1

Name
AliceBlue
AntiqueWhiteRGB Values
F0F8FF
FAEBD7

2

Aqua

00FFFF

3

Aquamarine

7FFFD4

4
5

Azure
Beige

F0FFFF
F5F5DC

6

BisqueFFE4C4

7
8
9
10
11
12

Black
BlanchedAlmond
Blue
BlueViolet
Brown
BurlyWood

000000FFEBCD
0000FF
8A2BE2
A52A2A
DEB887

13
14
15
16
17
18
19
20

CadetBlue
Chartreuse
Chocolate
Coral
CornflowerBlue
Cornsilk
CrimsonCyan

5F9EA0
7FFF00D2691E
FF7F506495ED
FFF8DC
DC143C
00FFFF

21
22

DarkBlue
DarkCyan

00008B
008B8B

23
24

DarkGoldenRod
DarkGray

B8860B
A9A9A925
26
27

DarkGreen
DarkKhaki
DarkMagenta

006400
BDB76B
8B008B

28
29

DarkOliveGreen
DarkOrange

556B2F
FF8C00

30
31
32
33
34
35

DarkOrchid
DarkRed
DarkSalmon
DarkSeaGreen
DarkSlateBlue
DarkSlateGray

9932CC
8B0000E9967A
8FBC8F
483D8B
2F4F4F

36

DarkTurquoise

00CED1

37
38

DarkViolet
DeepPink

9400D3
FF1493

39

DeepSkyBlue

00BFFF

40

DimGray69696941

DodgerBlue

1E90FF

312

42
43
44
45
46
47
48
49
50

FireBrickFloralWhite
ForestGreen
Fuchsia
Gainsboro
GhostWhiteGold
GoldenRod
Gray

B22222FFFAF0228B22
FF00FFDCDCDC
F8F8FF
FFD700DAA520808080

51
52
53

Green
GreenYellow
HoneyDew

008000
ADFF2F
F0FFF054
55
56

HotPink
IndianRed
IndigoFF69B4
CD5C5C
4B0082

57

Ivory

FFFFF0

58
59
60
61
62
63

Khaki
LavenderLavenderBlush
LawnGreen
LemonChiffon
LightBlue

F0E68C
E6E6FA
FFF0F5
7CFC00FFFACDADD8E664

LightCoral

F0808065LightCyan

E0FFFF

66

LightGoldenRodYellow

FAFAD2

67

LightGray

D3D3D3

68

LightGreen

90EE9069

LightPink

FFB6C1

70LightSalmon

FFA07A

71

LightSeaGreen

20B2AA

72

LightSkyBlue

87CEFA

73

LightSlateGray

77889974

LightSteelBlue

B0C4DE

75

LightYellow

FFFFE0

76
77
78
79

Lime
LimeGreen
Linen
Magenta

00FF0032CD32FAF0E6FF00FF

80
81

MaroonMediumAquaMarine

80000066CDAA

82
83
84

MediumBlue
MediumOrchid
MediumPurple

0000CD
BA55D3
9370DB

85
86

MediumSeaGreen
MediumSlateBlue

3CB371
7B68EE313

87MediumSpringGreen00FA9A

88

MediumTurquoise

48D1CC

89
90

MediumVioletRed
MidnightBlue

C71585
19197091
92

MintCream
MistyRose

F5FFFA
FFE4E1

93
94

Moccasin
NavajoWhite

FFE4B5FFDEAD95

Navy000080

96
97
98
99

OldLace
Olive
OliveDrab
Orange

FDF5E6808000
6B8E23
FFA500100

OrangeRed

FF4500

101
102
103
104

OrchidPaleGoldenRod
PaleGreen
PaleTurquoise

DA70D6
EEE8AA
98FB98AFEEEE

105
106

PaleVioletRed
PapayaWhip

DB7093FFEFD5

107
108
109
110
111
112

PeachPuff
Peru
Pink
Plum
PowderBlue
PurpleFFDAB9
CD853F
FFC0CB
DDA0DD
B0E0E6800080113

RebeccaPurple

663399

114
115

Red
RosyBrown

FF0000BC8F8F

116

RoyalBlue

4169E1

117
118
119

SaddleBrown
SalmonSandyBrown

8B4513
FA8072
F4A460

120
121
122
123
124

SeaGreen
SeaShellSiennaSilver
SkyBlue

2E8B57FFF5EE
A0522D
C0C0C087CEEB

125
126

SlateBlue
SlateGray

6A5ACD708090

127
128

Snow
SpringGreenFFFAFA
00FF7F

129
130
131

SteelBlue
Tan
Teal

4682B4
D2B48C
008080

314

132
133
134

ThistleTomatoTurquoise

D8BFD8FF6347
40E0D0

135
136
137
138
139
140
141-254
255

VioletWheat
White
WhiteSmoke
Yellow
YellowGreen
Reserved
No Preferred Color

EE82EEF5DEB3FFFFFF
F5F5F5
FFFF009ACD32315

References[1] HUTRR28, Gaming Standards Associated UsagePage Reservation, 2005, https://www.usb.org/sites/default/
files/hutrr28_-_gsa_usage_page_0.pdf[2] HUTRR29, Repurposing Alphanumberic Display Page As Generic Auxiliary Display Page, 2004, https://www.usb.
org/sites/default/files/hutrr29b_0.pdf[3] HUTRR30, Touch Digitizers, 2006, https://www.usb.org/sites/default/files/touch_digitizers_2_0.pdf[4] HUTRR31, Background Events, 2007, https://www.usb.org/sites/default/files/background_events_0.pdf[5] HUTRR32, Dual-mode Telephone Devices, 2008, https://www.usb.org/sites/default/files/hutrr32-c_0.pdf[6] HUTRR33, Water-cooling PC Chassis, 2007, https://www.usb.org/sites/default/files/water_cooling_0.pdf[7] HUTRR34, MultiTouch Digitizers, 2009, https://www.usb.org/sites/default/files/hutrr34.pdf[8] HUTRR35, Picture In Picture, 2009, https://www.usb.org/sites/default/files/ce_devices_0.pdf[9] HUTRR36, Color Buttons, 2009, https://www.usb.org/sites/default/files/color_buttons_0.pdf[10] HUTRR37, Aspect Ratio, 2010, https://www.usb.org/sites/default/files/hutrr37_0.txt[11] HUTRR38, 3d Mode Select, 2010, https://www.usb.org/sites/default/files/hutrr38_0.txt[12] HUTRR39, Sensors, 2011, https://www.usb.org/sites/default/files/hutrr39b_0.pdf[13] HUTRR40, Wireless Radio, 2012, https://www.usb.org/sites/default/files/hutrr40radiohidusagesfinal_0.pdf[14] HUTRR41, Display Brightness, 2012, https://www.usb.org/sites/default/files/hutrr41_0.pdf[15] HUTRR42, Keyboard Assistance, 2013, https://www.usb.org/sites/default/files/hutrr42c_0.pdf[16] HUTRR44,
Magnetometer
Accuracy,hutrr44final-magnetometeraccuracy.pdf

2013,

https://www.usb.org/sites/default/files/[17] HUTRR45, Voice Command, 2013, https://www.usb.org/sites/default/files/voice_command_usage.pdf[18] HUTRR46, Stylus, 2013, https://www.usb.org/sites/default/files/hutrr46e.txt[19] HUTRR47, Player LEDs, 2014, https://www.usb.org/sites/default/files/hutrr47.pdf[20] HUTRR48, FIDO Authenticators, 2014, https://www.usb.org/sites/default/files/hutrr48.pdf[21] HUTRR49, Camera Controls, 2014, https://www.usb.org/sites/default/files/hutrr49_camera_controls.pdf[22] HUTRR50, Generic Enable/Disable Control, 2014, https://www.usb.org/sites/default/files/hutrr50_control_
enable_usage_rev_b.pdf[23] HUTRR51, Portable Device Control, 2014, https://www.usb.org/sites/default/files/hutrr51_portable_device_
buttons_application_collection_rev_b_redline_0.pdf[24] HUTRR52, System Display Rotation Lock, 2014, https://www.usb.org/sites/default/files/hutrr52_system_
display_rotation_lock_controls_0.pdf[25] HUTRR53, Stylus Preferred Inking Color, 2015, https://www.usb.org/sites/default/files/hutrr53_preferred_
inking_color_0.pdf[26] HUTRR54, FIDO Authenticators Corrections, 2016, https://www.usb.org/sites/default/files/hutrr54_-_
correction_to_hutrr48_0.txt[27] HUTRR55, Sensor
controls_0.pdf

Batching,

2015,

https://www.usb.org/sites/default/files/hutrr55_sensor_batching_[28] HUTRR56, Keyboard Layout Usage, 2015, https://www.usb.org/sites/default/files/hutrr56b_application_
keyboard_layout_selector_0.pdf

316

[29] HUTRR57, Player LEDs Correction, 2016, https://www.usb.org/sites/default/files/hutrr57b-_correction_to_hutrr47_0.pdf[30] HUTRR59, Wearable
wearables_0.pdf

Sensors,

2016,

https://www.usb.org/sites/default/files/hutrr59_-_usages_for_[31] HUTRR60, Stylus Width, Type, 2016, https://www.usb.org/sites/default/files/hutrr60_-_additional_stylus_
usages_0.txt[32] HUTRR61,
Version Information,
information_usages_0.txt

2016,

https://www.usb.org/sites/default/files/hutrr61_-_version_[33] HUTRR62, System Multi-Axis Controller, 2016, https://www.usb.org/sites/default/files/hutrr62_-_generic_desktop_ca_for_system_multi-axis_controllers_0.txt[34] HUTRR63, Simple Haptics, 2016, https://www.usb.org/sites/default/files/hutrr63b_-_haptics_page_redline_
0.pdf[35] HUTRR64, Game Recording, 2016, https://www.usb.org/sites/default/files/hutrr64b_-_game_recording_controllers_0.pdf[36] HUTRR67, Digitizer Transducer
transducer_product_0.pdf

Polling,2016,

https://www.usb.org/sites/default/files/hutrr67_-_[37] HUTRR68, Assistive Input, 2016, https://www.usb.org/sites/default/files/hutrr68_0.pdf[38] HUTRR69, Mobile Game Controller, 2016, https://www.usb.org/sites/default/files/hutrr69_0.pdf[39] HUTRR70, Spatial Controller, 2017, https://www.usb.org/sites/default/files/hutrr70_spatial_controllers_
0.pdf[40] HUTRR71, Spatial Controllers, 2017, https://www.usb.org/sites/default/files/hutrr71_-_additional_usages_
for_spatial_controllers_0.pdf[41] HUTRR72, Camera Control Access, 2017, https://www.usb.org/sites/default/files/hutrr72_-_usages_to_control_camera_access_0.pdf[42] HUTRR73, FnKey Keyboard Backlight Brightness, 2018, https://www.usb.org/sites/default/files/hutrr73_-_
fn_key_and_keyboard_backlight_brightness_0.pdf[43] HUTRR74, Head/Eye Tracker, 2018, https://www.usb.org/sites/default/files/hutrr74_-_usage_page_for_
head_and_eye_trackers_0.pdf[44] HUTRR75, Navigation, 2017, https://www.usb.org/sites/default/files/hutrr75_-_navigation_usages_0.pdf[45] HUTRR76,
Gesturecharacters_0.pdf

Characters,

2018,

https://www.usb.org/sites/default/files/hutrr76_-_gesture_[46] HUTRR77, Show Desktop Windows, 2017, https://www.usb.org/sites/default/files/hutrr77_-_desktop_
controls_0.pdf[47] HUTRR78, Braille Display, 2018, https://www.usb.org/sites/default/files/hutrr78_-_creation_of_a_braille_
display_usage_page_0.pdf[48] HUTRR79, Peripheral Device Power, 2017, https://www.usb.org/sites/default/files/hutrr79_-_peripheral_
device_power.pdf[49] HUTRR81, Accessibility Control Correction,correction_to_hutrr68.pdf

2017,https://www.usb.org/sites/default/files/hutrr81_-_[50] HUTRR82, Object Proximity Sensor, 2018, https://www.usb.org/sites/default/files/hutrr82_-_additional_
sensor_usages.pdf[51] HUTRR83, Touchpad, 2018, https://www.usb.org/sites/default/files/hutrr83_-_new_digitizer_usages_for_
touchpads_0.pdf[52] HUTRR84, Lighting And Illumination, 2018, https://www.usb.org/sites/default/files/hutrr84_-_lighting_
and_illumination_page.pdf
317

[53] HUTRR85, System Dismiss Notification, 2018, https://www.usb.org/sites/default/files/hutrr85_system_
dismiss_notification.pdf[54] HUTRR87, Heat
digitizers_1.pdf

MapDigitizers,

2018,

https://www.usb.org/sites/default/files/hutrr87_-_heat_map_[55] HUTRR88, Microsoft Pen Protocol, 2018, https://www.usb.org/sites/default/files/hutrr88_-_add_microsoft_
pen_protocol_to_digitizers_page_0.pdf[56] HUTRR89, Desktop Assistant, 2019, https://usb.org/sites/default/files/hutrr89_-_desktop_assistant_usage.pdf[57] HUTRR90, Dockable Devices, 2019, https://www.usb.org/sites/default/files/hutrr90_-_dockable_devices.pdf[58] HUTRR91, Dockable Device Addendum, 2020, https://www.usb.org/sites/default/files/hutrr91_-_dockable_
device_addendum_0.pdf[59] HUTRR92, Hinge Angle Sensor, 2020, https://www.usb.org/sites/default/files/hutrr92_-_hinge_angle_
sensor.pdf[60] HUTRR93, Gesture Sensors, 2020, https://www.usb.org/sites/default/files/hutrr93_-_gesture_sensors_0.pdf[61] HUTRR94, System Do Not Disturb, 2020, https://www.usb.org/sites/default/files/hutrr94_-_system_do_not_disturb.pdf[62] HUTRR95, Privacy Screen, 2020, https://www.usb.org/sites/default/files/hutrr95_-_privacy_screen_0.pdf[63] HUTRR96, Character Gesture UsageId Reassignment, 2020, https://www.usb.org/sites/default/files/hutrr96_-_character_gesture_usageid_reassignment.pdf[64] HUTRR97, Navigation and Desktop Show All UsageId Reassignment, 2020, https://www.usb.org/sites/default/
files/hutrr97_-_navigation_and_desktop_show_all_usageid_reassignment.pdf[65] HUTRR98, Correcting Background Controls UsageId Assignment, 2020, https://www.usb.org/sites/default/
files/hutrr98-correctingbackgroundcontrolsusageidassignment_2.pdf[66] HUTRR99, Voice Dictation Usage, 2020, https://www.usb.org/sites/default/files/hutrr99-voicedictation_1.
pdf[67] HUTRR100, Correction to Lighting and Illumination Description, 2021, https://usb.org/sites/default/files/
hutrr100-correctionlightingilluminationdescription.pdf

318