HCI support for external Bluetooth Classic chipset

Hi,

We are considering hooking up an external chip with a Bluetooth standard HCI interface to do Bluetooth classic using Hands Free protocol and Serial Profile protocol.

I know the nRF5340 uses HCI with the HCI_RPMSG project - Since you already have some kind of HCI support - is what we want to do easy, or is there a big difference between how that's used to communicate BT 5 / low energy stuff VS the old school Classic stuff?

Apologies if my question isn't worded well, I'm pretty new to HCI.

Thanks!

Glen

  • Since you currently have some kind of HCI support, I was wondering whether what we want to accomplish would be simple, or if there would be significant differences in how it is utilized to communicate BT 5 / low energy things vs the old school Classic stuff.

    drift hunters

  • Hi,

    From the Zephyr documentation, the Zephyr Host focus has been on Bluetooth Low Energy (BLE), and only supports portions of a Classical Bluetooth (BR/EDR) Host layer.

    https://docs.zephyrproject.org/latest/connectivity/bluetooth/index.html

    https://docs.zephyrproject.org/latest/connectivity/bluetooth/overview.html ,

    • Basic Bluetooth BR/EDR (Classic) support

      • Generic Access Profile (GAP)

      • Logical Link Control and Adaptation Protocol (L2CAP)

      • Serial Port emulation (RFCOMM protocol)

      • Service Discovery Protocol (SDP)

    So it seems to be missing support for e.g. Hands Free protocol that you need.

  • The nRF5340's HCI support with the HCI_RPMSG project primarily focuses on Bluetooth Low Energy (BLE) communication, which is different from Bluetooth classic in terms of protocol and functionalities. While the nRF5340 supports BLE, handling Bluetooth classic protocols, such as the Hands-Free Profile (HFP) and Serial Port Profile (SPP), may not be straightforward, as these are distinct from BLE.

    Implementing Bluetooth classic using an HCI interface might require additional considerations and potentially more complex development compared to BLE. The primary difference lies in the underlying protocol stack and profiles used.

    For Bluetooth classic, you'll need to work with protocols like RFCOMM for serial communication (commonly used with SPP) and HFP for hands-free functionality. This involves different packet structures and commands compared to BLE.

    To implement Bluetooth classic using HCI, you might need to consider the following:

    1. Protocol Stack: You'll need to ensure that your external chip's HCI interface can handle the classic Bluetooth protocol stack, including L2CAP, RFCOMM, and the specific profile you're interested in, like HFP and SPP.

    2. Compatibility: Make sure your external chip is compatible with Bluetooth classic requirements and profiles.

    3. HCI Commands: Familiarize yourself with the HCI commands and events relevant to classic Bluetooth. These will differ from those used for BLE.

    4. Configuration: You might need to configure your HCI implementation to support the desired classic Bluetooth profiles.

    5. Testing: Thoroughly test your setup to ensure that it functions as expected and adheres to Bluetooth classic standards.

    As you're new to HCI, it's a good idea to consult the documentation for your external chip, as well as resources on Bluetooth classic protocol and profiles. If you have access to development support from the chip manufacturer or a relevant community, they can provide valuable guidance.

    In summary, while the nRF5340 supports HCI for BLE, implementing Bluetooth classic with specific profiles will require additional work and understanding of the classic Bluetooth protocol stack. Feel free to ask if you have more specific questions or need further assistance with your project. wordle junior

Related