[GSoC 2026] Bluetooth: HCI Improvements & HID Profile | Haiku Project | Haiku Project

Hello! I’m Mohammed R. Attia, a 2nd-year Computer Science Student. I’ve been accepted into Google Summer of Code (GSoC) 2026 with Haiku, with my proposal titled “Modernizing Haiku’s Bluetooth Stack: HCI Completion and HID Profile Implementation.”


This is a companion discussion topic for the original entry at https://www.haiku-os.org/blog/mohammedrattia/2026-05-03_gsoc_2026_bluetooth_hci_improvements__hid_profile__haiku_project
17 Likes

Happy coding hours, @mohammedrattia ! :fireworks:

Finally I spared some time to read this introductory blog post.

that contains a BT 4.0 radio too, then I can switch to Intel solution, so I have a better odds to have a working Intel BT device driver, which gets earlier into Haiku or works already, due to Broadcom firmware issues .. that I also experience for WLAN wifi cards already.

I do not know exactly which one of you related, but there is a BT related kernel error message in my syslog - at booting :

2026-06-03 15:13:41 KERN: bt: bluetooth_std_ops: Connection Thread error

it is a single line, nothing before/after - you may know it.

   user  ~    17:29    grep -E -i bluetooth /boot/system/var/log/syslog.1 | grep -E -v -i deferred; echo; echo; echo; grep -E -i bluetooth /boot/system/var/log/syslog | grep -E -v -i deferred
2026-06-03 12:29:57 KERN: bt: bluetooth_std_ops: Connection Thread error



2026-06-03 15:13:41 KERN: bt: bluetooth_std_ops: Connection Thread error
   user  ~    17:33    

:cowboy_hat_face:

Hi @KitsunePrefecture,

Thanks for reading my blog! I don’t really know much about the types of Bluetooth devices (I mean which are generic and which need firmware), so if it’s important for you to use Bluetooth as soon as possible double check that the new device don’t need a specific firmware from Intel to be uploaded at booting.

As for the kernel error, the kernel work actually is out of the scope of my project; however, I traced the error and found that it always occur (hard-coded) in the function bluetooth_std_ops when the op is equal B_MODULE_INIT (which I presume used to initialize some part of the Bluetooth). Thus, it’s not something specific to your Bluetooth. I don’t really know if this means the error message don’t have any effect and should be deleted, or part of the function isn’t complete : )

I mostly believe it should be deleted because the line above it is as following: // status = InitializeAclConnectionThread(); which is a function that isn’t implemented and not used in current ACL implementation.

1 Like

Thanks for your investigation.

I hope so switching to Intel HW resolve stuff – if not for BT … at least for WLAN. As for Broadcom WLAN there’s no working kernel module, so I must install a 3rd party Broadcom Linux driver. On Haiku there’s no working modern Broadcom Wifi Card driver, at least not for the Dell installed, which I have. Also the BT device is not a lucky choice for FOSS - it seems.
There’s no such issue with Intel generally.

Happy to help!

I hope the new intel device solve the WLAN issue and work properly with Bluetooth as soon as it became usable.

On the same machine - Dell Precision M6800 - in Linux Mint I solved my Bluetooth issue.

Apparently the BT service seemed to work, but I couldn’t pair it with my little BT speaker.
An another BT manager client finally gave me an error code, unlike blueman.
From this I found out that Linux Mint only downloads the necessary firmware for the Wifi card using the 3rd party driver installation system app, not for the BT device.

I found a Broadcom BT firmware public GitHub repo

https://github.com/winterheart/broadcom-bt-firmware

ReadMe file –

There are useful infos in it - e.g. …

Broadcom no more issue updates for consumer products.

… Wifi + BT cards requires the Wifi firmware too to initialize the BT device …

… and at the bottom, it contains the license information too.

https://github.com/winterheart/broadcom-bt-firmware?tab=readme-ov-file

I followed an instruction
and downloaded the required firmware manuall, placed to the appropriate firmware directory.
killed any BT service (if any), restarted and bumm!.. discovery and pairing finally worked.

Q01 : Can I use this firmware - BCM20702A1-413c-8143.hcd - in Haiku ?

I understand a driver also needed, but maybe that is already available in Haiku (h2generic or what) and only just the firmware should be placed into an appropriate directory.

Q02 : I oopened a ticket about that BT preferences crashing, in Trac – #20137

unfortunately I failed the hrev number in the title I wrote hrev59878 instead of hrev59787, but otherwise the ticket is valid. Since then I upgraded to hrev59791 and now I’m on hrev59793 and the problem still persist.

Still noone checked - probably due to the inappropriate hrev number in the title, I’m not able to change the ticket title.

That’s mostly because one of the commits I made recently in the BluetoothSettingsView. Máximo opened a commit to fix this issue. I believe the crash won’t persist when the fix is merged.

Congrats! I think this may make it easier for Haiku to support those in the future : ).

The h2generic just communicates with already initialized bluetooth devices through USB bus. I don’t think it can load a firmware into the bluetooth device. The Linux kernel have drivers for identifying and uploading firmware like some of the files here: linux/drivers/bluetooth at master · torvalds/linux · GitHub (which have dedicated files for each vendor).

However, I’ve noticed some commented parts that say “uncomment this if you have a Broadcom device”: https://grok.nikisoft.one/opengrok/xref/haiku/src/kits/bluetooth/LocalDevice.cpp?r=c3bd18778bbcaeea2863ea90fc2f40394482f9ec#615

I don’t really know if this fix some broadcom device, but looks like it’s hardcoded for BCM2035 devices anyway.

Good to know - thanks !.. I thought, as there were no comment in my ticket, that was not noticed and take it seriously due to the wrong hrev in the title.

The other thing with initialize the Broadcom device in Haiku .. I’m going to be patient, as that would be fruitful as the other GSoC applicant progresses :wink: as I have BT speaker not keyboard and mice.

Until I search how BSDs support BT devices, Haiku may use or get inspired by those drivers just as for Wifi devices.

Happy coding !

1 Like