main index I connected my Nokia SU-8W foldable bluetooth keyboard to the Beagleboard, using a Trust bluetooth dongle mounted on an unpowered 4-port USB2 hub.

Beagleboard is powered off 4×AA NiMH batteries, and gives out some power to the hub and the dongle.

Well, it works, but after some minutes it didn't work anymore; I guess AA batteries were low on juice and the hub+dongle suck some juice too. It's not that a great idea doing everything off 4×AA NiMH batteries (1.2V×4 = 4.8V), but it was funny to see that it did work.


Connections

I connected my USB2 hub to the EHCI USB port. Yes, it was an USB2 hub (connects to USB2-high-speed and allows up to four USB high/full/normal-speed peripherals). Remember that the EHCI port of the Beagleboard is USB2.0-high-speed only and won't "enumerate" anything slower than that).

As you can see in the photo, I had a nice 4" USB-miniA cable, but it still seems quite large, compared to Beagleboard size...

The Trust USB dongle (Cambridge Silicon chipset) is a Bluetooth 2.0+EDR tiny device having even a small blue led inside its case. Bluetooth 2.0+EDR does not require the bandwidth of USB2.0-high-speed, thus I couldn't connect it directly to the EHCI port (this is why the hub was required).


Software

After loading the "Narcissus" OpenEmbedded Linux, I gave the command:
hcitool scan --flush
to read the Bluetooth address of the keyboard. I had to repeat the command a few times because the first time the keyboard was off, and when I switched on it, it was immediately "grabbed" by my Stylistic Linux tablet which was already paired with it... :) I had to shut down the bluetooth of the tablet to go on. :)

When hcitool scan on the Beagleboard reported me the exact Bluetooth address, I edited the /etc/bluetooth/rfcomm.conf configuration file, to match the Nokia keyboard address and channel:
rfcomm5 {
  bind yes;
  device 01:a2:b3:c4:d5:e6;
  channel 1;
  comment "bluetooth foldable keyboard";
}

Note: change the "device" parameter with the six-byte keyboard address.

Manually binding it was quicker because I did not want to restart the bluetooth subsystem (anyways I am not completely sure that this step is needed). So I just gave:
rfcomm bind /dev/rfcomm0 01:a2:b3:c4:d5:e6 1

Note: Nokia SU8W keyboard always talks on channel 1; other peripherals may talk on different channels (in such a case you would have to check it using something like: sdptool search --bdaddr 01:a2:b3:c4:d5:e6 --tree SP).

Then I gave this command to make the human-interface-device daemon acknowledge it:
hidd --server --search

After hidd found it, it got immediately available on the Xorg system.

I was willing to place these commands in some Linux boot script file, but I found that current OpenEmbedded does not have anything like the rc.local found in other distributions.

Keyboard works great; it's not that easy to "learn" it (to use numbers you have to press the Fn key).


Hooray!

home page - send e-mail