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).