1. Mark Rejhon's Avatar
    Hello,

    I know BlackBerry OS does not support Bluetooth HID.
    However, apparently it has been done at the software level before.

    Is there anyone in the form able to use Bluetooth HID, such as implementing a software based HID layer that communicates at the next lower level to the Bluetooth device?

    There is some precedent that it can be done:
    ThinkOutside succeeded in writing a Bluetooth HID driver for OS 4.2 based BlackBerry devices (ThinkOutside Ultra Slim Bluetooth keyboard running on BlackBerry 8100's, as well as Curve 8300, 8310). Yes, I have already contacted iGo, who took over Thinkoutside's remains when Thinkoutside went defunct. Apparently, Thinkoutside took the source code of the world's only successfully functioning Bluetooth HID keyboard driver with them -- and none exist in the world anymore. It was not Bold or Storm compatible, due to a simple bug in the source code (Exception thrown - layout called within layout).

    If anyone knows about Bluetooth programming enough to comment about writing a software implementation of Bluetooth HID for BlackBerry, please contact me via PM message.

    Thanks!
    Mark Rejhon
    03-09-09 07:00 PM
  2. ydaraishy's Avatar
    It probably shouldn't be difficult, depending on which way you want the control, but I haven't looked at what the BB Bluetooth API and that really determines how dirty you need to get your hands. Why don't you go look at the API and see what it affords you?
    03-09-09 08:06 PM
  3. Mark Rejhon's Avatar
    Hey,

    I am a software developer too (consultant here too) and would like to do most of the development myself. So not a full application, although I would be willing to pay for a tip/reward for somebody's starter example.

    Basically, I want starter code example to help jumpstart me -- get a Bluetooth HID device start successfully transmitting packets to the application, and that the packets are successfully parsable to the point that I can write a HID parser.

    If anyone is willing to provide basic sample code that demonstrates basics of HID communications (even just raw hex data) on the BlackBerry, that definitely would be something I'd be willing to pay for. I already have access to open-source HID code which I can use to learn how HID works, but none written for BlackBerry -- so that's the problem here, since it appears I've got to bypass at least a little part of the BlackBerry OS Bluetooth stack, in order to do successful HID communicatinos.
    Last edited by mdrejhon; 03-15-09 at 10:00 PM.
    03-15-09 09:56 PM
  4. ydaraishy's Avatar
    If you're familiar with Bluetooth concepts and programming, then why don't you just read the API? BlackBerry JDE 4.7.0 API Reference: Interface L2CAPConnection would probably be very useful. This is what API documentation is for.

    If you're trying to just cobble a usable application from sample code, I would suggest that this be the wrong way about it, you need to understand the protocol and how to use it; you have non-BB sample code, why don't you try porting it?
    03-16-09 04:24 AM
  5. Mark Rejhon's Avatar
    I'm aware of that. I use API documentation all the time, and have used the Bluetooth samples included with BlackBerry JDE but they aren't at the level needed for a proof-of-concept.

    The problem is I need samples, not necessarily code I copy and paste, as I am venturing into unfamiliar territory as I am not that familiar with Bluetooth, though I have an understanding of network concepts, network layers, high level understanding of TCP/IP, etc...

    The problem is this is a short spare-time app for assistive devices for the deaf, and I don't have much hobby (free) time to learn the ropes of HID or port. It'd be my first time doing Bluetooth at this level.

    I'm not going to use code directly from the sample - but as a jumpstart to save me a week of research and trial/error.

    Other peoples' attempts at HID programming is a Bluetooth device that says silent and doesn't chat back. The sample I'd ask for would be a proof-of-concept of sorts to prove that an application-level HID was indeed possible, and I am not wasting my time. :-)

    If you're familiar with Bluetooth concepts and programming, then why don't you just read the API? BlackBerry JDE 4.7.0 API Reference: Interface L2CAPConnection would probably be very useful. This is what API documentation is for.

    If you're trying to just cobble a usable application from sample code, I would suggest that this be the wrong way about it, you need to understand the protocol and how to use it; you have non-BB sample code, why don't you try porting it?
    03-16-09 09:27 AM
  6. Mark Rejhon's Avatar
    In other words this is a minimum objective of this thread for me: I want an actual, live, code sample just merely _prove_ HID was indeed possible at the application level, given whatever limitations of the Bluetooth API's give us.

    To another hobbyist with more spare time than I, I'd offer $100 for such a code sample that was a proof of generic HID device communications on BlackBerry, that would confirm that one can initiate successful communications with any HID device from a BlackBerry. This includes code for the appropriate manual SDP parsing, if needed. Something I believe is normally done by the BlackBerry OS, if I correctly understand what I am reading.

    While ThinkOutside apparently succeeded about two years ago before they went under (and iGo took over), I need to confirm that this is, indeed, a doable project, and exclude some proprietary trickery that Thinkoutside may or may not have done (such as proprietary extensions in their HID keyboard that I don't know about, that made it work on a BlackBerry Curve with their driver)
    03-16-09 09:46 AM
  7. Mark Rejhon's Avatar
    Is there anyone who can at least confirm that this /can't/ be done?

    Most appreciated.
    03-19-09 05:05 PM
  8. Mark Rejhon's Avatar
    I'm willing to pay more if it is required that more than a sample is needed, or someone needs to spend a lot more time researching. It shouldn't take a very Bluetooth-experienced developer very long to get the raw basics started, assuming this is possible at all.

    Alternatively, if your needs are higher than this, I can trade ready-made source code that I have worked on myself at home -- a license to use my own code (Rejhon Technologies Inc.). For example, I have code that runs a BlackBerry web browser off a memory card or off files embedded in the application's .jar/.cod. If you are a company that needs an embedded web browser in your application that also supports embedded images/css/JavaScript (for offline access, or highly-controlled access), let me know. I have kind of become an expert in making an embeddable BlackBerry Browser control work off any arbitrary stream (memory streams, file streams, even HTML/CSS/JS/GIF/JPG/etc embedded in Java strings or byte[] or ushort[] arrays). I have added arbitrary custom schemas (such as file:// or xyz:// or jar:// ...) that executes a specific schema-optimized app, too, or changes the behaviour of the web browser, to access files from different sources such as a .jar file, a file on the memory card, or launch a third-party app with arguments.

    Another route: If RIM is reading this.... With iPhone's supporting Bluetooth keyboards (jailbroken) and iPhone 3.0 API's making it possible without needing jailbreak, now is time for RIM to consider adding official native Bluetooth HID support, and make my planned project much easier.
    Last edited by mdrejhon; 03-23-09 at 06:30 PM.
    03-23-09 06:16 PM
  9. awns729's Avatar
    Hey,

    Did anyone ever find a solution to this? I'm interested in making a BB appear as an HID device on a PC.

    Thanks
    finittz likes this.
    12-28-11 02:17 AM
  10. Lrunestad's Avatar
    I bought a Bluetooth keyboard that paired.but wouldn't connect with my BB 8350. Any suggestions?
    06-28-13 07:05 PM
LINK TO POST COPIED TO CLIPBOARD