Portrait of Edd Dumbill, taken by Giles Turnbull

Subscribe to updates

Feed icon Atom or RSS

or get email updates

What I make

expectnation
a conference management web application


XTech Conference
a European web technology conference

The HID Switcher Proxy

One of the more annoying things about Bluetooth-enabled keyboards is that they require software running on the host computer in order to process the input events. This means that you cannot use them to access BIOS screens or other parts of your computer that run before the operating system is fully operational.

Happily, there's now a really smart solution to this. CSR, the manufacturers of the most popular Bluetooth modules, have introduced an update to their firmware which includes a feature called "HID proxy". HID is the USB protocol used by conventional USB mice and keyboards, and implemented in the BIOS of all modern motherboards.

When in HID proxy mode, a Bluetooth dongle handles the input from Bluetooth keyboards and mice itself, and turns it into HID events to send via USB. When you plug such a dongle in, the computer believes it's talking to a mouse and keyboard.

The dongle can then be switched into Bluetooth "HCI mode" again when the operating system has fully booted, and the mouse and keyboard will reattach themselves.

Apple's recent Bluetooth firmware update will install HID proxy firmware into a D-Link DBT-120 Bluetooth dongle, as long as it has revision B2 or later. (Earlier devices used Broadcom, not CSR, modules.) The updater warns that, after you perform the update, the dongle will only work with OS X. This isn't quite true. Actually, it'll work with any operating system that knows how to switch the dongle from HID mode back to Bluetooth HCI mode.

The Bluetooth tools for Linux, BlueZ, include such a command: hid2hci. I will shortly be updating Debian's BlueZ startup scripts to perform the switch automatically on boot-up. I imagine that, sooner or later, HID proxy firmware will become the standard in Bluetooth dongles.

blog comments powered by Disqus


You are reading the weblog of Edd Dumbill, writer, programmer, entrepreneur and free software advocate.
Copyright © 2000-2012 Edd Dumbill