Electronic – Bluetooth bee and different profiles

bluetooth

We got a bluetooth bee for testing purpose on hardware. Unfortunately the device only seems to run SPP. But it seems possible to do more than that.

Here's the product:

And the datasheet:

When I enter in AT mode, I can set the class of the device to something different to the default. While scanning, my computer could see that my blueooth device was a "keyboard" using the class 0x540

That said, while trying to PAIR it with OsX 10.8, I set the pair code to 1234 as configured but osx isn't able to pair the device. (It seems to enter the pincode correctly and wait for something to happen and then fail)

It's not possible to be in inquery mode unless you started the SPP profile. Which makes me think that it's not possible to run my own profile using UART but since we can change the device class, it should be possible to run my own profile but I couldn't find anything about it.

I'd like to know if it's possible to run different service like "hid" on this chip even if the firmware only seem to support the spp profile but allows different classes. I'd like to implement a HID device like a remote control

Best Answer

I haven't worked with this Bluetooth Bee, but I'll attempt to provide some insight.

In regards to HID:

It's unlikely you'll be able to support HID onto the BT Bee; in your datasheet, the Bee supports version 2.0 with Enhanced Data Rate (EDR), whereas according to the HID Spec, HID conforms to 2.1 + EDR or better. Also, HID is supported by L2CAP, so you would have to go low level to support it yourself (which is a great feat in itself). If you are dedicated to HID, find a module that supports it natively.

This RN-42 from Sparkfun for instance: https://www.sparkfun.com/products/10823

If you're interested in the HID Spec...

In regards to connecting issues:

I suspect that the issue may be occurring because you may have your module configured to be a master device and you're trying to initiate the connection from your computer. The device initiating connection is always the master device. Your datasheet for the module mentions that you can configure your module to be a Slave.

In regards to SDP:

The datasheet doesn't say anything about the Service Discovery Protocol (SDP), which is a convenient Bluetooth feature in which a random 6 digit number is generated and compared by two devices. In this case, your module supports something known as Legacy pairing, where a 4 digit PIN in chosen and/or entered by the user.

Your computer very likely supports SDP, however when it attempts to pair with a device that does not support SDP, the computer should utilize Legacy pairing to conform to your module. In short, you don't have to worry about SDP.