world leader in high performance signal processing
Trace: » bluetooth_usb

Bluetooth on USB

Almost any Bluetooth USB dongle is supported.

To operate Bluetooth Devices/Interfaces bluez tools are required

Kernel Support

Enable Bluetooth Support and HCI USB driver

[*] Networking support
      Networking options  --->
[ ]   Amateur Radio support  --->
< >   IrDA (infrared) subsystem support  --->
<*>   Bluetooth subsystem support  --->
< >   Generic IEEE 802.11 Networking Stack

--- Bluetooth subsystem support
<*>   L2CAP protocol support
< >   SCO links support
<*>   RFCOMM protocol support
[*]     RFCOMM TTY support
<*>   BNEP protocol support
[*]     Multicast filter support
[*]     Protocol filter support
<*>   HIDP protocol support
      Bluetooth device drivers  --->

<*> HCI USB driver
[ ]   SCO (voice) support
< > HCI UART driver (NEW)
< > HCI BCM203x USB driver (NEW)
< > HCI BPA10x USB driver (NEW)
< > HCI BlueFRITZ! USB driver (NEW)
< > HCI VHCI (Virtual HCI device) driver (NEW)

Testing the Bluetooth Device

Plug in USB dongle:

usb 1-1: new full speed USB device using sl811-hcd and address 4
usb 1-1: Product: Sitecom USB bluetooth2.0 class 2 dongle CN-512

Bring up the interface:

root:/utils/exec/sbin> ./hciconfig hci0 up
root:/utils/exec/sbin> ./hciconfig
hci0:   Type: USB
        BD Address: 00:10:60:D0:8C:41 ACL MTU: 384:8 SCO MTU: 64:8
        UP RUNNING PSCAN ISCAN
        RX bytes:77 acl:0 sco:0 events:9 errors:0
        TX bytes:31 acl:0 sco:0 commands:8 errors:0

Configure the interface:

root:/utils/exec/bin> ./hcitool
hcitool - HCI Tool ver 2.25
Usage:
        hcitool [options] <command> [command parameters]
Options:
        --help  Display help
        -i dev  HCI device
Commands:
        dev     Display local devices
        inq     Inquire remote devices
        scan    Scan for remote devices
        name    Get name from remote device
        info    Get information from remote device
        cmd     Submit arbitrary HCI commands
        con     Display active connections
        cc      Create connection to remote device
        dc      Disconnect from remote device
        sr      Switch master/slave role
        cpt     Change connection packet type
        rssi    Display connection RSSI
        lq      Display link quality
        tpl     Display transmit power level
        afh     Display AFH channel map
        lst     Set/display link supervision timeout
        auth    Request authentication
        enc     Set connection encryption
        key     Change connection link key
        clkoff  Read clock offset
        clock   Read local or remote clock

For more information on the usage of each command use:

hcitool <command> --help

Show HCI devices

root:/utils/exec/bin> ./hcitool -i hci0 dev
Devices:
        hci0    00:10:60:D0:8C:41

Scan for Bluetooth devices in the area

root:/utils/exec/bin> ./hcitool -i hci0 scan
Scanning ...
        00:0C:78:50:4F:77       ANYCOM BT (MHENNER-L01)
        00:0F:DE:32:FB:C3       T610
        00:10:C6:62:C0:25       JKOHLSC-L02

root:/utils/exec/biroot:/utils/exec/bin> ./hcitool -i hci0 inq
Inquiring ...
        00:0F:DE:32:FB:C3       clock offset: 0x6b37    class: 0x520204
        00:0C:78:50:4F:77       clock offset: 0x48a5    class: 0x10010c
        00:10:C6:62:C0:25       clock offset: 0x4df9    class: 0x1c010c

root:/utils/exec/bin> ./hcitool -i hci0 inq
Inquiring ...
        00:0F:DE:32:FB:C3       clock offset: 0x6b37    class: 0x520204
        00:0C:78:50:4F:77       clock offset: 0x48a5    class: 0x10010c
        00:10:C6:62:C0:25       clock offset: 0x4df9    class: 0x1c010c

Get some information from these devices:

root:/utils/exec/bin> ./hcitool -i hci0 info 00:0F:DE:32:FB:C3

Requesting information ...
        BD Address:  00:0F:DE:32:FB:C3
        Device Name: T610
        LMP Version: 1.1 (0x1) LMP Subversion: 0x503
        Manufacturer: Ericsson Technology Licensing (0)
        Features: 0x04 0xca 0x31 0x00 0x00 0x00 0x00 0x00
                <encryption> <RSSI> <SCO link> <u-law log> <A-law log> <CVSD>

root:/utils/exec/bin> ./hcitool -i hci0 info 00:0C:78:50:4F:77
Requesting information ...
        BD Address:  00:0C:78:50:4F:77

root:/utils/exec/bin> ./hcitool -i hci0 info 00:10:C6:62:C0:25

Requesting information ...
        BD Address:  00:10:C6:62:C0:25
        Device Name: JKOHLSC-L02
        LMP Version: 1.2 (0x2) LMP Subversion: 0x679
        Manufacturer: Cambridge Silicon Radio (10)
        Features: 0xff 0xff 0x9f 0xfe 0x9b 0xf9 0x00 0x80
                <3-slot packets> <5-slot packets> <encryption> <slot offset>
                <timing accuracy> <role switch> <hold mode> <sniff mode>
                <park state> <RSSI> <channel quality> <SCO link> <HV2 packets>
                <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme>
                <power control> <transparent SCO> <broadcast encrypt>
                <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan>
                <interlaced iscan> <interlaced pscan> <inquiry with RSSI>
                <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave>
                <AFH class. slave> <3-slot EDR ACL> <5-slot EDR ACL>
                <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps>
                <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended features>
root:/utils/exec/bin>

Ping a device:

root:/utils/exec/bin> ./l2ping -i hci0 -f 00:0C:78:50:4F:77

Ping: 00:0C:78:50:4F:77 from 00:10:60:D0:8C:41 (data size 44) ...

44 bytes from 00:0C:78:50:4F:77 id 0 time 17.79ms