User's Manual
Enhanced Class 1 Bluetooth v2.1 Module
User’s Guide
Americas: +1-800-492-2320 Option 2
Europe: +44-1628-858-940
Hong Kong: +852-2923-0610
www.lairdtech.com/wireless
136
CONN-GUIDE-BT740_v0.2
13.3 Sending INPUT Reports
Once a connection establishes, a report sends by a device end by sending an entire INPUT report in a
single data packet with channel ID 0xA0.
For example, if the descriptor specifies a standard keyboard and if the ‘a’ key pressed, then the following
data sends over the UART to the module:
0A A0 00 00 04 00 00 00 00 00
And to convey that the left shift was pressed, the data is:
0A A0 02 00 04 00 00 00 00 00
13.4 Getting OUPUT Reports from a Host
Once a connection establishes, a report sends by a host to the device by sending an entire OUPUT
report in a single data packet with channel ID 0x90, for example: 03 90 01
13.5 Uploading a HID Descriptor into the Module
Uploading of HID descriptors, which can be large blocks of arbitrary binary data, is done using the BLOB
manager. The BLOB manager is an entity in the module which allows for blocks of binary data to receive
over the UART and accumulate in ‘BLOB’ objects, of which two are made available. The two BLOBs of
data have identifiers 0 and 1 respectively. In addition, data channels 0x98 to 0x9F are dedicated to data
transfer to/from those BLOBs. Where channel 0x98 is for BLOB 0, 0x99 is for BLOB 1. There is also a
command called CMD_BLOBMANAGE which performs various actions on the BLOBs. See the definition
of that command for more details; suffice to say that there are subcommands for clearing, getting size,
saving to non-volatile storage, and getting from non-volatile storage.
In the case of uploading a HID Descriptor, the BLOB commands to use are ‘clear’ and ‘save’.
For example, if the contrived thirteen byte HID Descriptor 05 01 09 06 A1 01 05 07 29 65 81 00 C0 is
uploaded using BLOB 1 into non-volatile location 1, (where this non-volatile location reference is used in
S Register 39) then the following packets submit to the module on the UART.
0E 00 2D 7F 00 01 00000000 00000000 //CMD_BLOBMANAGE --- clear BLOB 1
0B 99 05 01 09 06 A1 01 05 07 29 65 81 //send data into BLOB 1
04 99 00 C0 //send more data into BLOB 1 which is appended to any existing data
0E 00 2D 7F 03 01 00000001 00000000 // CMD_BLOBMANAGE --- save BLOB 1 into nonvol storage ID 1
13.6 Specifying a Custom Hid Descriptor for Use
After a custom HID descriptor uploads into the module where a HID descriptor in the range 0..N has
becified, the module can configure to use that descriptor when HID Device profile is active by modifying S
Register 39. Basically, take the 0 based HID ID, add 1 to it and store that value in that register.
13.6.1 Specifying Service Record Name for Custom Hid
For a custom HID descriptor, the device can also register a custom service name if it is saved using the
BLOB manager. At any time, the default service name "BTHIDCUSTOM” can be invoked by deleting the