Is it possible to make a computer behave as a bluetooth HID device?
Asked Answered
P

5

40

Is it possible to make a computer behave as a bluetooth HID device? That is, given a local machine with a standard USB keyboard plugged into it, other devices could discover this machine and use it as a bluetooth keyboard.

I'd like to create a linux or OS X application (or use an existing one, though I've found none) which can behave as described above, but I'm not sure where to start, or if it's even possible.

So:

  • Is what I'm describing possible?
  • Are there any existing applications that do what I describe?
  • If no application already exists (I'm assuming not), are there bluetooth libraries or bindings that will help? (I'm pretty comfortable using most of today's popular languages, so I'd prefer a library most directly suited to the task, so long as it's available in linux or OS X.)
  • Failing any of the above, the bluetooth spec looks pretty dense. Are there specific guides or other starting points applicable to the problem at hand that I can read?

I realize that such an application would most likely need to steal the normal keyboard input, possibly providing some KVM-like hotkey for switching between providing input to the host operating system and sending the input over bluetooth to the connected device, but I'm considering that problem to be outside the scope of this question.

Pages answered 14/11, 2010 at 10:59 Comment(2)
I know that Bluez does support advertising arbitrary services, but I don't know how they would be implemented. I recommend you try the Bluez development contacts. bluez.org/contactNavigator
To add to this old question, here is an open-source HID client that lets a linux machine behave like a bluetooth keyboard: anselm.hoffmeister.be/computer/hidclient/index.html.en You can read the source, if you need more info on how it works.Zipporah
T
6

It is definitely possible on Linux. Some time ago I found this project:

http://nohands.sourceforge.net/index.html

They emulate a full-blown headset with audio and keyboard controls on the Linux bluetooth stack. If they can emulate something like that, you would probably be able to emulate something simpler like a keyboard.

Theresa answered 14/11, 2010 at 22:35 Comment(0)
T
4

It is possible, however I don't think I'll be able explain it very well and I don't know the entire answer. A BT HID device works as a server and waits for connections to come to it. In linux, using the bluez stack, first you would have to advertise the HID service for other devices to see. I think you do that using the sdp.h and sdp-lib.h header files(the second header maybe called something else, I'm on a windows computer and can't check). So you would have to add the HID service record to you computer for other devices to see it. You would have to create a program that first adds this service to the record, then waits for other devices to connect, then handle the pairing process, Bluez might handle this for you, or you might have to do some things to it, I'm not quite sure. You should also read the Bluetooth HID Spec found at the http://www.bluetooth.com/English/Technology/Building/Pages/Specification.aspx site. This document contains the details of the SDP record relevant to HID. Also the book Bluetooth essentials for programmers is pretty good to introduce you into bluetooth programming

I would like to have given a more concise answer, with more detail, but that's all I know ATM. I am also trying do something similar, but spare time is so hard to find ;) I'm also not on my Linux box and can't check all the details. If your are still interested, let me know and i'll try to expand my answer.

Tallage answered 28/1, 2011 at 17:31 Comment(0)
R
3

I don't know if this is helpful, nor if it is still alive and working, but perhaps you could try this link.

Another one that might or might not be helpful in some way is remuco, but I don't know if they are using a Bluetooth HID profile.

Roguish answered 3/1, 2011 at 22:28 Comment(0)
E
2

It is indeed entirely possible with Linux and Bluez. See: https://github.com/lkundrak/virtkbd/blob/master/btkbdd.pod

Ensoll answered 30/7, 2013 at 15:55 Comment(0)
A
1

Try Across, unfortuantly for me my phone was lacking support.

across-pc-as-bluetooth-mouse.png

Avens answered 21/4, 2016 at 13:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.