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?


2 Answers 2


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.

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.