Controlling Glass via Bluetooth with a Bluegiga WT12

Controlling Glass via Bluetooth with a Bluegiga WT12

Here we are, one step closer to my ultimate goal of using the Keyglove as a wireless input device to control a wearable computer. For this installment of progress, the milestone is Bluetooth control of Glass, using a Bluegiga WT12 module and the custom HID descriptor that I wrote about earlier. I won’t go into detail about what that descriptor does, since it’s all documented in the other post, but the short version is that it provides a keyboard, consumer page control (e.g. media), mouse, and raw bidirectional 16-byte packet transference.

Read more

Complex Bluetooth HID Input with iWRAP and the Bluegiga WT12

Complex Bluetooth HID Input with iWRAP and the Bluegiga WT12

Thanks to Bluegiga’s workhorse of a class 2 Bluetooth module and the latest iWRAP5 firmware with custom HID descriptor support, I have now been able to achieve the wireless capabilities I always hoped the Keyglove would have. Keyboard, mouse with scrolling support, consumer page reports, and raw HID packets for arbitrary data transmission. It isn’t fully integrated into the Keyglove code yet, and I’ve only tested it with manual control so far, but the firmware setup is solid. It’s now just a matter of translating the manual control I’ve already done into my codebase.
Read more

Keyglove Interface Options

Keyglove Interface Options

As I continue building the code to support all the necessary aspects of the configuration and control protocol for the Keyglove, I am also thinking about the various ways the protocol will be used, and how to keep everything as predictable and flexible as possible. There are both wired and wireless methods of interfacing with this device, but it turns out to be a little more complex than that.
Read more

Improved WT12 Bluetooth UART GPIO Breakout

Improved WT12 Bluetooth UART GPIO Breakout

While working on the iWRAP code library for the Bluegiga WT12, one of the issues I’ve come across is trying to create a good way to detect and manage active Bluetooth links. The iWRAP firmware, controllable entirely over a simple UART connection, has three different possible modes. As I mentioned in my last post about the Keyglove Kit board, the most efficient solution is to avoid the high-demand MUX mode and instead rely on regular DATA/COMMAND mode switching and active link detection using two GPIO pins.
Read more

VIDEO: Wireless Mouse Movement Demo

Keyglove #09 – Wireless Mouse Movement Demo from Jeff Rowberg on Vimeo.

Finally! I have managed to incorporate the Bluegiga WT12 sufficiently into the current prototype hardware, along with the still-in-progress iWRAP code library to control it easily and transparently. This video demonstrates the first true combination of Bluetooth wireless functionality and the actual Keyglove code, rather than just a proof-of-concept Arduino sketch. This is a major milestone; wrapping up the remaining core Bluetooth functionality should be pretty straightforward now.
Read more

WT12 Custom Breakout Board: Take 2

WT12 Custom Breakout Board: Take 2

After my original post about the WT12 breakout board I was working on a while back, I thought I should really follow that up with some info on what’s happened with that adventure. In short, it’s been a great success! The PCB revisions that I made proved to work very well, and I now have two great boards available for purchase through InMojo, as well as an Eagle library if you want to make your own.
Read more

WT12 Custom Breakout Board: Take 1

WT12 Custom Breakout Board: Take 1
Update 6/24/2011: the WT12 breakout boards I designed are now available on InMojo here (full, $50) and here (UART only, $40) for cheaper than you can get WT12 breakout boards anywhere else as of the time of this update. You can also download my Bluegiga Eagle library here.

The next major missing piece of Keyglove functionality is wireless support. This involves a battery, charging circuit, and a Bluetooth device. I’ve been working on Bluetooth for a while now, and after the difficulty with Broadcom BCM2042-based modules, I had some very exciting preliminary success with Bluegiga’s WT12 module (as described in this recent post). My rat’s nest of a test hookup demonstrated to me that the WT12 is perfect for the Keyglove, so a breakout board became the next priority.
Read more

Bluegiga WT12 Bluetooth Module Connection

Bluegiga WT12 Bluetooth Module Connection
Update 4/18/2011: you can read about the custom WT12 breakout board I designed here. The short version is that the board was almost good enough, but I’ve got a revision ordered and that one should be perfect. It will be available to others shortly.
Update 6/24/2011: the WT12 breakout boards I designed are now available on InMojo here (full, $50) and here (UART only, $40) for cheaper than you can get WT12 breakout boards anywhere else as of the time of this update. You can also download my Bluegiga Eagle library here. You may also be interested in the follow-up blog post about this.

So, after all of my experiments with BCM2042-based Bluetooth modules and the uncertainty and sparse documentation surrounding them, I decided to give Bluegiga’s WT12 module a try. I have to say, the more I learn and experiment, the more I like it. This one single module supports pretty much every Bluetooth profile ever, easily hot-switchable via a simple command. Their customer support is excellent. Their documentation, firmware, schematics, and all other development resources are readily available for free. Their modules are available for purchase cheaply in small quantities (e.g. one at a time for $27 from SemiconductorStore.com). You can control the complete behavior of the module using their capable iWRAP firmware and well-documented commands sent over the UART interface. It’s perfect.
Read more

Interfacing with a BCM2042/BP20422 Bluetooth HID Module

Interfacing with a BCM2042/BP20422 Bluetooth HID Module
Update 4/6/2011: the design files for the breakout board shown below from Wayne and Layne has been made available here. Thanks, guys! (Remember this board is optimized for the BluePacket BP20422 module, and the pair button doesn’t work with other modules.)
Update 6/24/2011: one guy has been able to successfully integrate a BP20422 clone module into an existing full-size IBM Model M keyboard to convert it from wired to wireless. This included a lot of custom circuit design work and firmware replacement, which may be useful to you depending on your own interests. Check out his detailed documentation here.

The CE Compass WKB-1500 Bluetooth Keyboard I ordered arrived in the mail a while back, and I took to testing and dismantling it immediately.

Now, I decided to buy an actual device instead of just a Bluetooth module for two reasons: first, and most importantly, the only source I know of for the HID-profile module I was looking at has been out of stock for quite some time. There is currently no place I’ve been able to find, even internationally, where you can buy a single HID-enabled module. There are many places to buy SPP-enabled modules, and in many cases these can be adapted to providing keyboard and mouse support. All they require is a driver on the host device to translate the serial data into input control signals. However, my goal is to have the Keyglove be detected natively as an input device, so that no special driver is required. The HID Bluetooth profile specification is basically just a hardware Bluetooth wrapper around the standard HID profile used with USB keyboards and mice, as far as I know, which makes it perfect. The only problem is that nobody sells those modules by themselves, so I decided to try taking one out of another device.
Read more