3

I'm trying to build a wireless, two part keyboard using bluetooth and arduino. Imagine a normal wireless keyboard but split it in two with the numeric keys on the right placed on a separate unit. Then connect it like a normal bluetooth keyboard to a computer, tablet, phone et.c.

Is it possible to do this with only one bluetooth module in each part? Here is my idea:

The right (numeric) unit has a bluetooth module set to SPP profile that sends custom data (when a numeric key is pressed) to the left unit. The left units bluetooth module somehow switches between a SPP and HDI profile and looks like a bluetooth keyboard from the view of the computer/tablet/phone. Is this possible?

If no then I guess I will need 3 bluetooth modules; two in the left side with one using SPP and the other using HDI. However according to one answer here on stackexchange that is also impossible: How can I create a serial bridge using two Bluetooth dongles?

"It is not possible for two Bluetooth devices, with the serial port profile (SPP), to pair with each other. They can only pair to a host."

Is this true? In that case I guess I will have to use 1 bluetooth module (probably this one: https://www.sparkfun.com/products/11601) and 2 Xbee modules?

Are there any other ways to solve my problem?

btkeyb
  • 31
  • 2

2 Answers2

4

One possible solution is to treat of the two wireless part-keyboards as separate independent keyboards i.e. Bluetooth HID keyboard devices.

  • Each of the parts has only a subset of keystrokes it can send to the host.
  • The two parts do not need to know about or interact with each other (if there is such a need, this solution is no longer a contender).
  • That way, if a particular application needs only numeric, or only alphanumeric inputs, that keyboard alone could be used independently.
  • The host Bluetooth device (tablet, PC, ...) needs to pair with both HID devices.
Anindo Ghosh
  • 50,446
  • 8
  • 105
  • 201
1

A Bluetooth module on HCI can handle up to 7 connections in the same time. One could be SPP and the other could be HDI. You have to left the Arduino and to select for example a Raspberry Pi with Linux and protocol stack Blue.