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
154
CONN-GUIDE-BT740_v0.2
In non-canned mode (S Reg 531 > 0) the host has to send the raw 8 byte INPUT reports in the
ATX<String> command and conversely any OUTPUT reports from the host send to the host in
RX<string> asynchronous responses.
Disconnections from the module initiate via DSR deassertion. However, if the module is in non-canned
mode (S Register 531 > 0) then it is also possible to initiate a disconnection using the ATH command.
On disconnection a “NO CARRIER” async response sends to the host.
14.4.1 HID Descriptors
HIDs present their capabilities to a host in a HID descriptor which is essentially a block of octets that
describe the device’s capability and more importantly how events convey back and forth. This concept
was originally developed by the USB organisation and has been adopted by the Bluetooth SIG virtually
intact.
The HID descriptor contains information about INPUT and OUTPUT reports. They are both blocks of
octets described to contain various bit fields describing the event that needs conveyed to the peer.
Hence, at the end of the day, if a HID implementation was viewed as a communications black box
between a device and host, then it could be viewed as the device generating an INPUT report consisting
of X bytes which presents to the host and conversely an OUTPUT report consisting of Y bytes sends by
the host to the device.
In this module’s HID implementation, the module does not care about the content of those INPUT and
OUTPUT reports.
An INPUT report presents to the module by the UART host in a ATX<string> which then de-escapes and
sends as a single atomic packet to the remote host. Similarly, each OUTPUT package arrives atomically
in a single packet from the remote host which then sends to the UART host in a single RX<string>
message.
It was mentioned above that by default a standard keyboard HID descriptor is built into the firmware and
the default value of S Register 9039 makes the module connectable via a HID Device profile.
It is possible to download up to two custom HID device descriptors to store in the module’s non-volatile
memory. These custom HID device descriptors are then identified via a number in the range 0 to N. If S
Register 9039 changes to a value 1 to N+1, then on power up, if S Reg 9003 indicates that HID profile is
to be made available, it implements the appropriate custom HID descriptor in the service discovery
database.
When custom HID descriptors are downloaded and stored, there is no validation performed on the block
of data. This is because the module has no context to perform such validation.
In MP mode, to download a custom HID descriptor, you can use the utility MpBtHost.exe. Right click on
the window to invoke a pop-up menu and select “Upload HID Descriptor”. In the new dialog box, enter the
BLOB ID (recommend leave at 0) and HID ID to use. Then to use that descriptor update S Register 9039
with a value which is HidId+1.