Bluetooth HID mouse -- willing to help

Hello!

I got a bluetooth mouse for use with my Haiku laptop, a Dell D630 (one of the better old laptops you can still use in 202X, IMO). I think I’d like to get it to work with Haiku.

I read that Haiku has a bluetooth stack which can, with some bugs, pair with a bluetooth device. But, there is no support for bluetooth HIDs.

I don’t know if I can help much with the hardware support part – but that seems to be somewhat done already with the existing stack. What I think I can help with is (if I understand correctly) software support for HID devices exposed via the existing bluetooth stack.

How do I get started with helping with this? What does this entail, and will this take more than two years to do? I don’t think I can have anything done before the year is up, but I could begin.

1 Like

See: GSoC project ideas | Haiku Project

“This task involves investigating the current state of the Bluetooth code, improving the existing code on newer devices (pairing, etc), and improving the stack to make it more useful by implementing driver(s) for Bluetooth device(s) of your choice (file transfers, audio, HID, networking, etc).”

1 Like

The current Bluetooth stack can only pair with devices. After that there is, as far as I know, nothing in place to communicate with them.

So we’ll need a bluetooth_hid driver (which can probably share the same HID stack as the existing USB and I2C drivers - so you can look at these as a starting point), and we need some additions to the bluetooth stack so that it can expose devices in the internal device tree, for that new driver to attach to, and then some interface so the driver can tell the stack to send and receive packets for a specific device.

1 Like

More than that, we don’t implement all the protocols to discover and negotiate services on Bluetooth devices either, so that will need to be implemented, too.

I think Bluetooth HID happens over L2CAP, so no further link-layer protocols need to be implemented, at least. (File transfer will require more work there.)

This much we already have (L2CAP sockets.)

2 Likes