HCI
Host Controller Interface -- the standard interface between the BLE host stack (software) and the controller (radio hardware).
HCI (Host Controller Interface)
HCI is the standardized interface between the BLE host stack (software running on an application processor) and the BLE controller (the radio hardware and link layer firmware). It defines a set of commands, events, and data formats that allow the host to manage connections, configure advertising, and exchange data with remote devices.
Architecture
In a typical BLE system, the host and controller may run on the same SoC (single-chip architecture) or on separate processors connected via UART, SPI, or USB (dual-chip architecture). HCI abstracts this physical transport, providing a uniform command/event interface regardless of the underlying bus.
The dual-chip architecture is common in designs using a dedicated BLE Module connected to a host MCU, or when using a PC or smartphone as the host with an external BLE dongle.
Command and Event Flow
HCI communication follows a command/event pattern:
- Host sends HCI Command: e.g.,
LE_Set_Advertising_Parameters,LE_Create_Connection - Controller returns HCI Event: e.g.,
Command_Complete,LE_Connection_Complete - Asynchronous data: ACL data packets flow bidirectionally for GATT operations
Key HCI command groups for BLE include: - LE Controller commands: Advertising, scanning, connection management, PHY configuration - Link Control commands: Disconnect, read remote features - Informational commands: Read BD_ADDR, read buffer size - Status commands: Read RSSI, read TX Power
HCI Logging and Debugging
HCI logs (also called btsnoop logs on Android) are the primary tool for debugging BLE interoperability issues. They capture every command, event, and data packet exchanged between host and controller. Tools like Wireshark, Ellisys, and nRF Sniffer can decode HCI logs into human-readable protocol traces.
On Android, HCI logging can be enabled in Developer Options. On embedded systems using Zephyr or other RTOS, HCI trace output can be directed to a UART or RTT console for analysis.
Transport Layers
| Transport | Speed | Use Case |
|---|---|---|
| UART (H:4) | 115.2 kbps - 4 Mbps | Most common for embedded |
| UART (H:5, 3-Wire) | Same | With flow control and error recovery |
| SPI | Up to 8 Mbps | High-speed embedded designs |
| USB | 12 Mbps (Full Speed) | PC dongles, development kits |
| SDIO | Up to 50 Mbps | Wi-Fi/BLE combo modules |
Related Content
Understanding BLE Architecture: Protocol Stack Overview
Getting Started…(hardware/firmware) and Host (software), separated by the HCI interface. Layer Section Responsibility Application Host…
Web Bluetooth API: BLE from the Browser
Development…advertising — browser can only act as a GATT client No raw HCI or L2CAP access iOS Safari exclusion affects a large…
BLE Extended Advertising: Larger Payloads and Multiple Sets
Protocols & Profiles…Yes (BT 5.4+) Max advertising interval ~10.24 s ~10485 s HCI Command Structure Extended advertising uses a new set of…
자주 묻는 질문
Our glossary covers 90+ BLE technical terms organized by category. Each term includes a definition, related terms, and links to relevant chips and guides.