
Date / Year-Month-Day Approved Revision Document No
Bluetooth HID Profile
2003/5/22 Version
1.0
HID_010_SPC_
PFL/1.0
Edited by: e-mail address N.B.
Craig Ranta
Steve McGowan
Confidential
HUMAN INTERFACE DEVICE (HID) PROFILE
VERSION 1.0 ADOPTED
Abstract
This profile defines how devices with Bluetooth™ wireless
communications can use the HID Protocol initially to discover the
feature set of a HID, and then communicate with the HID. This profile

BLUETOOTH SPECIFICATION
HID Profile Page 2 of 123
further defines how a device with Bluetooth wireless communications
can support HID services over the Bluetooth protocol stack using the
Logical Link Control and Adaptation Protocol (L2CAP) layer.

BLUETOOTH SPECIFICATION
HID Profile Page 3 of 123
Referenced Documents
1. Universal Serial Bus Specification, Version 1.1 (www.usb.org)
2. USB Physical Interface Device Specification (www.usb.org)
3. USB HID Usage Tables, Version 1.1 (www.usb.org)
4. USB Device Class Definition for Human Interface Devices, Version 1.11
(www.usb.org)
5. Bluetooth Core Specification 1.1 (www.bluetooth.com)
6. Bluetooth Profiles Specification 1.1 (www.bluetooth.com)
7. Bluetooth Human Interface Device Marketing Requirements Document, Version 1.0
(www.bluetooth.com)
8. Bluetooth Assigned Numbers document (a web document found at
http://www.bluetooth.org/assigned-numbers.htm)
9. Universal Serial Bus Language Identifiers (LANGIDs) (www.usb.org)
10. The Unicode Standard, Worldwide Character Encoding, Version 3.0, The Unicode
Consortium, Addison-Wesley Publishing Company, Reading, Massachusetts
(www.unicode.com)
11. ISO-10646-1:2000 Annex D, UTF-8 (UCS Translation Format)
12. Bluetooth Human Interface Device (HID) Profile Test Specification,
(www.bluetooth.com)
13. Bluetooth Device Identification Specification, Version 0.95b (www.bluetooth.com)

BLUETOOTH SPECIFICATION
HID Profile Page 4 of 123
Revision History
Revision Date Comments
0.1 19.6.2000 Initial Draft.
0.3 18.8.2000 Added device requirements.
0.4 2.10.2000 Updated pairing/bonding. Added power management section.
0.49 28.11.2000 Added HID over L2CAP subdocument.
0.492 5.1.2001 Added host requirements, reformatting.
0.5 20.1.2001 Fixed inconsistent internal cross-references.
Section 7.3.1.1: changed mandatory reporting rate limit to
recommendation.
Section 5.6 modified.
Section 11: made 3 and 5 slot packets, paging optional.
0.6 3.4.2001 Incorporated comments on V0.5
0.7 20.4.2001 Incorporated V0.5 L2CAP comments.
Dropped Default Reports.
0.7b 15.5.2001 Incorporated V0.7 draft feedback for Section 7.
Other minor formatting changes.
0.7c 16.5.2001 Added signaling flow diagrams in Appendix A.
Section 6.7.3: removed option of simultaneous host connections for
consistency with virtual cable concept.
Section 10: changed inquiry to optional for HIDs.
0.7d 17.5.2001 Updated Boot Mode Operation (Section 7.2.1) to include Report IDs on
boot reports.
Added HIDSDPDisable attribute (Section 7.11.8).
Added Section.
0.7e 1.6.2001 Added Invalid Parameter error to Handshake (Section 7.4.1).
Added text to Section 7.2.1 stating that in boot mode, report IDs are used
on both the control and interrupt channels.
Added note to GET_REPORT Size field in the Request byte (Section
7.4.3).
Added note to Section 7.2.1, “Boot Mode Operation” that in boot mode
the Report ID shall be included.
0.7f 16.6.2001 Major rewrite of SDP section.
Added details to HID_CONTROL relative to suspend operation.
0.8a 18.6.2001 Minor revisions to Section 6, taking into account device-initiated
reconnection concepts. Revised Table 26 “connectable mode” behavior
for the same reason. Other minor grammatical changes.
0.8b 19.6.2001 Changed HIDSubClass Attribute to refer to the FHS Device Minor Class
field.
0.8c 20.6.2001 Dropped HIDReportInterval attribute.
0.8d 21.6.2001 Dropped Sniff Mode text in the HIDRemoteWake discussion.
Added HIDSerialNumber attribute.
Added Bluetooth Device Identification to document list.
Clarified HIDDeviceReleaseNumber attribute.
0.8e 22.6.2001 Deleted HIDSerialNumber attribute.
Incorporated numerous clarifications from HID WG comments.
0.8f 5.7.2001 Section 3.2, Figure 2: revised the protocol stack of the HID to show a
more cost-effective implementation where the HID software is embedded
in the radio processor.
Section 7.4.4: clarified text regarding short reports (not allowed except
using DATC mechanism).
Section 7.12.8: clarified that Lan
g
ua
g
eBaseAttributeIDList is re
q
uired b
y

BLUETOOTH SPECIFICATION
HID Profile Page 5 of 123
Revision Date Comments
HIDs.
Section 7.4: clarified that payload size includes header, DATC required if
payload equals or exceeds MTU.
Section 7.45 and 7.46: added references to HIDDeviceSubClass.
Section 7.17.1 to 7.17.3: changed the peak bandwidth for Best Effort
channels to “unknown”.
Updated Table 20 to add new attribute AdditionalProtocolDescriptorLists.
Updated format to match example from Johannes Elg of Ericsson.
Updated Table 21.
0.9 22.7.2001 Added additional message sequence charts. Added section 14. Clarified
wording in various sections.
Changed HIDVirtualConnection attribute name to HIDVirtualCable.
0.9a 24.7.2001 Technical editor review. Updated styles and fonts for consistency with
other Bluetooth documents.
0.9b 30.7.2001 Removed requirements for pairing when virtually cabled.
Clarified that hosts shall initiate security procedures.
Clarified HID connection establishment rules (both channels needed, may
be configured simultaneously)
Added requirement for hosts to try PIN code zero when initiating security
procedure to HID.
Added references to HID usage tables for keyboard scan codes and
pointing device boot packets.
0.9c 26.9.2001 1) changed the terminology from "baseband timeout" to "supervision
timeout" as defined by the LMP_supervision_timeout PDU, ending any
possible confusion about what we are referring to.
2) Modified section 7.10.1.1.
3) Modified section 7.1.3 to state that the interrupt channel shall be
opened anyway.
4) Change the text in section 7.7 to reference the L2CA_ConfigReq
service rather than the L2CA_GetInfo service.
5) Corrected the Example SDP.
0.9c2 26.10.2001 7.4.2 Added paragraph on HID_Disconnect packet and added command
to Table 4
1,3,2 Added definitions for ACL, PSM, QoS and bonding.
4.4 Clarified that only one interrupt and control channel may be open at
one time in a virtually cabled device.
6.3,6.4 Clarified the moment at which a virtual cable is considered
established and broken. Devices expected to exit page and page scan
when virtually cabled and connected.
6.7.1.6 Added error case when device forgets the host.
7.2.2 Added section on channel initialization and establishement rules.
7.4.3 BufferSize in header byte changed to NOT include the header itself.
Table 5, Figure 9 Clarified that biffer size is little-endian
7.10.1.X Clarifications for large packet DATC cases
0.91 13.11.2001 5.4.2 Added application note for keyboard passkey entry
Various: Applied IEEE guidelines for use of shall, must, should and
changed several instances of must to shall.
5.4.5.10 Added paragraph stating that Limited Inquiry Access Code
(LIAC) shall be used to scan for Bluetooth HIDs.
5.2.2 Clarified that the host and device must determine whether SAR is
necessary by using the L2CA_Config_Req service.
5.4.5.6 Changed “negotiate” to “set” in reference to the link supervision
timeout.
评论30