• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1HCI BRIDGE
2==========
3
4This tool acts as a simple bridge between two HCI transports, with a host on one side and
5a controller on the other. All the HCI packets bridged between the two are printed on the console
6for logging. This bridge also has the ability to short-circuit some HCI packets (respond to them
7with a fixed response instead of bridging them to the other side), which may be useful when used with
8a host that send custom HCI commands that the controller may not understand.
9
10
11!!! info "Running the HCI bridge tool"
12    ```
13    python hci_bridge.py <host-transport-spec> <controller-transport-spec> [command-short-circuit-list]
14    ```
15
16!!! example "UDP to Serial"
17    ```
18    python hci_bridge.py udp:0.0.0.0:9000,127.0.0.1:9001 serial:/dev/tty.usbmodem0006839912171,1000000 0x3f:0x0070,0x3f:0x0074,0x3f:0x0077,0x3f:0x0078
19    ```
20
21!!! example "PTY to Link Relay"
22    ```
23    python hci_bridge.py serial:emulated_uart_pty,1000000 link-relay:ws://127.0.0.1:10723/test
24    ```
25
26    In this example, an emulator that exposes a PTY as an interface to its HCI UART is running as
27    a Bluetooth host, and we are connecting it to a virtual controller attached to a link relay
28    (through which the communication with other virtual controllers will be mediated).
29
30    NOTE: this assumes you're running a Link Relay on port `10723`.
31