Hi list,

I recently bought a bluetooth keyboard that is not HID (I didn't even know
there was such a think. I thought all of them used the HID protocol). Then I
read on the wiki that  http://www.handhelds.org/moin/moin.cgi/kbdd kbdd 
could be useful for this, but didn't find anyone saying it works.

I have tried it and it works for me, so I'll let you know what I did in case
someone else wants to use this non standard keyboards. Mine is a 
http://www.dealextreme.com/details.dx/sku.6443 MSI bk100  (you can find it
cheap on ebay) but I think it should work with others as well, as kbdd
support several keyboards.

1. I found an ipkg package for kbdd in angstrom so I used it instead of
compiling the source.

~#opkg install
http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/kbdd_0.12+svn20061019-r0.1_armv4t.ipk

2. Get the address of the keyboard 
~#hcitool scan
Scanning ...
        00:0F:F6:00:D9:05       BT-FoldableKB

3. Use rfcomm to bind the keyboard
~#rfcomm bind 0 00:0F:F6:00:D9:05

4. Load uinput module
~#modprobe uinput

5. Run passkey-agent in the background
~#passkey-agent 0000 00:0F:F6:00:D9:05 

6. Run kbdd in the background (you can specify a different type of keyboard
with the -t option, mine works well with btfoldable)
~#kbdd -p /dev/rfcomm0 -t btfoldable &

And that's all, you should be able to use your keyboard.

I also attach a small script I wrote to connect and disconnect the keyboard,
it have to be modified to suit your keyboard. An icon on the desktop to run
it is very handy, you just press the connect key of your keyboard and click
it to connect, and click it again when you want to disconnect the keyboard.

#!/bin/sh

# Change this to suit your keyboard. 
KBADDRESS=00:11:22:33:44:55
KBPIN=0000
KBTYPE=btfoldable
RFCOMMPORT=0

KBDDPID=`pidof kbdd`

if [ -z "$KBDDPID" ] ; then
        modprobe uinput
        rfcomm bind $RFCOMMPORT $KBADDRESS
        passkey-agent $KBPIN $KBADDRESS &
        kbdd -p /dev/rfcomm$RFCOMMPORT -t $KBTYPE &
else
        kill $KBDDPID
        PKAGENTID=`pidof passkey-agent`
        if [ ! -z "$PKAGENTID" ] ; then
                kill $PKAGENTID
        fi
        rfcomm release $RFCOMMPORT
        rmmod uinput
fi

Hope it helps someone.

P.S. Make sure bluetooth is enabled, otherwise nothing of this is going to
work ;)



-- 
View this message in context: 
http://n2.nabble.com/Non-HID-Bluetooth-keyboard.-Success%21-tp1496389p1496389.html
Sent from the Openmoko Community mailing list archive at Nabble.com.


_______________________________________________
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to