# \[GSoC 2026\] Modernizing Haiku's Bluetooth stack: Implementing support for HFP profile - Mid-Term Progress Report

DevFeed: [\[GSoC 2026\] Modernizing Haiku's Bluetooth stack: Implementing support for HFP profile - Mid-Term Progress Report](<https://devfeed.tech/articles/gsoc-2026-modernizing-haiku-s-bluetooth-stack-implementing-support-for-hfp-profile-mid-term-progress-report-34782.md>)

Original publisher: [Read original article](<https://www.haiku-os.org/blog/vighnesh-sawant/2026-07-15_gsoc_2026_mid_term_progress_report/>)

Author: vighnesh-sawant

Published: 2026-07-15T14:32:12Z

Content type: article

Language: en

Sources: [Haiku Project](<https://devfeed.tech/sources/haiku-project.md>)

Topics: [Bluetooth](<https://devfeed.tech/topics/bluetooth.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [systems](<https://devfeed.tech/topics/systems.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [USB](<https://devfeed.tech/topics/usb.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [driver](<https://devfeed.tech/tags/driver.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [haiku](<https://devfeed.tech/tags/haiku.md>), [implementing](<https://devfeed.tech/tags/implementing.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [modernizing](<https://devfeed.tech/tags/modernizing.md>), [progress-report](<https://devfeed.tech/tags/progress-report.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [report](<https://devfeed.tech/tags/report.md>), [software](<https://devfeed.tech/tags/software.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [usb](<https://devfeed.tech/tags/usb.md>)

## AI overview

A GSoC 2026 progress report on modernizing Haiku's Bluetooth stack by adding groundwork for the Hands-Free Profile. Completed work includes isochronous USB endpoint support, SCO handling, kernel hooks, and SCO and RFCOMM protocol implementations. Planned work covers SPP, SDP, and the remaining HFP functionality.

## Source excerpt

Introduction Hello again! It has been a fun journey since the beginning of GSoC. My project focuses on modernizing Haiku's Bluetooth stack, specifically adding support for the Hands-Free Profile (HFP). HFP is a profile that allows operating systems to interact with Bluetooth audio devices, such as headsets, for two-way voice calls and audio streaming. Today, I'll be sharing a progress report on the work I have completed till now, and will outline my plans for the remainder of the project. Progress So Far A significant portion of my work has been dedicated to laying the groundwork for the HFP profile. Because Haiku's Bluetooth stack previously lacked the necessary transport layers for real-time audio, I had to implement several underlying protocols. Here is a breakdown of the changes I've made: USB and Driver Support (Isochronous Endpoints): I started off by adding support for isochronous USB endpoints to the h2generic Bluetooth driver. Isochronous transfers are critical because they guarantee bandwidth and timely delivery of data, which is a requirement for streaming real-time audio. Following this, I implemented SCO (Synchronous Connection-Oriented) handling within h2transactions, along with the proper scheduling mechanism.. Kernel Hooks: I added the necessary hooks for SCO and HCI (Host Controller Interface) commands. Protocol Implementations (SCO and RFCOMM): I successfully added the core implementations for both the SCO and RFCOMM protocols. RFCOMM provides an emulated serial interface over L2CAP. It serves as the control channel for many higher-level profiles, including HFP. SCO handles the actual low-latency audio transmission needed for voice calls. What's Next? Short-term Goals: Serial Port Profile (SPP) The Serial Port Profile sits on top of RFCOMM and provides a standard way to send and receive data. Implement SPP API: I will be implementing the JSR82 API methods for SPP in the Bluetooth kit. Implementing the Hands-Free Profile (HFP) The remaining time wil