bluetoothctl-hci - Man Page

HCI Submenu

Synopsis

bluetoothctl [--options] [hci.commands]

Note:

This submenu communicates directly with the Bluetooth controller via HCI socket, bypassing the BlueZ D-Bus API. Commands use the Host Controller Interface (HCI) protocol.

Commands

open

Open HCI channel.

Usage

> open <index> <chan=raw,user>

index

HCI controller index number (e.g., 0, 1, 2)

chan

Channel type (raw or user)

Example Open user channel (controller needs to be powered off first)
> power off
> hci.open 0 user
HCI index 0 user channel opened
Example Open user channel for HCI controller 0
> hci.open 0 user
Example Open user channel for HCI controller 1
> hci.open 1 user
Example Open user channel for HCI controller 2
> hci.open 2 user
Example Open raw channel for HCI controller 0
> hci.open 0 raw
Example Open raw channel for HCI controller 1
> hci.open 1 raw

cmd

Send HCI command.

Usage

> cmd <opcode> [parameters...]

opcode

HCI command opcode in hexadecimal format (e.g., 0x0c03)

parameters

Optional command parameters as hexadecimal bytes

Example Send HCI Reset command
> hci.cmd 0x0c03
HCI Command complete:
00
Example Send HCI Reset command (no parameters)
> hci.cmd 0x0c03
Example Send HCI Read Local Version Information
> hci.cmd 0x1003
Example Send HCI Read BD Address
> hci.cmd 0x1009
Example Send HCI Set Event Filter with parameter 0x01
> hci.cmd 0x0c01 0x01
Example Send LE Set Advertising Parameters with 2 parameters
> hci.cmd 0x200f 0x00 0x08
Example Send LE Set Advertising Data with length and data bytes
> hci.cmd 0x2008 0x20 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
Example Send HCI Set Event Mask command
> hci.cmd 0x0c05 0x02
Example Send HCI Write Scan Enable
> hci.cmd 0x0c2a 0x01
Example Send HCI Write Class of Device
> hci.cmd 0x0c23 0x00 0x08

send

Send HCI data packet.

Usage

> send <type=acl,sco,iso> <handle> [data...]

type

Packet type (acl, sco, or iso)

handle

Connection handle in hexadecimal format (e.g., 0x0000)

data

Optional data bytes in hexadecimal format

Example Send ACL data packet to connection handle 0x0000
> hci.send acl 0x0000
Example Send empty ACL packet to handle 0x0000
> hci.send acl 0x0000
Example Send ACL packet with "Hello" data to handle 0x0001
> hci.send acl 0x0001 0x48 0x65 0x6c 0x6c 0x6f
Example Send ACL packet with custom data to handle 0x0010
> hci.send acl 0x0010 0x01 0x02 0x03 0x04
Example Send empty SCO packet to handle 0x0000
> hci.send sco 0x0000
Example Send SCO packet with audio data
> hci.send sco 0x0001 0xaa 0xbb 0xcc
Example Send SCO packet with sine wave pattern
> hci.send sco 0x0002 0x80 0x00 0x80 0x00
Example Send empty ISO packet to handle 0x0000
> hci.send iso 0x0000
Example Send ISO packet with sample data
> hci.send iso 0x0001 0x12 0x34 0x56 0x78
Example Send ISO packet for LE Audio stream
> hci.send iso 0x0020 0xa0 0xa1 0xa2 0xa3

register

Register HCI event handler.

Usage

> register <event>

event

HCI event code in hexadecimal format (e.g., 0x0e)

Example Register handler for Command Complete event
> register 0x0e
Example Register handler for Command Status event
> register 0x0f
Example Register handler for Connection Complete event
> register 0x03
Example Register handler for Disconnection Complete event
> register 0x05
Example Register handler for LE Meta events
> register 0x3e
Example Register handler for Inquiry Complete event
> register 0x02
Example Register handler for Role Change event
> register 0x22

unregister

Unregister HCI event handler.

Usage

> unregister <event>

event

HCI event code in hexadecimal format (e.g., 0x0e)

Example Unregister Command Complete event handler
> unregister 0x0e
Example Unregister Command Status event handler
> unregister 0x0f
Example Unregister Connection Complete event handler
> unregister 0x03
Example Unregister Disconnection Complete event handler
> unregister 0x05
Example Unregister LE Meta event handler
> unregister 0x3e

close

Close HCI channel.

Closes the currently open HCI channel.

Usage

> close

Example Close the current HCI channel
> close

Resources

<http://www.bluez.org>

Reporting Bugs

<linux-bluetooth@vger.kernel.org>

Info

December 2024 BlueZ Linux System Administration