This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

HID Keyboard Demo - works for iOS 7 but not iOS 8

Hello,

I am trying to use the HID Keyboard Demo (ble_HID_keyboard_template from arduino sdk) . I'm using a RedBearLabs Blend Arduino with the nrF8001.

It works great with iOS 7 (iphone 5)

However, I am not able to get it to work with iOS 8.4 (using iphone 4S). It sometimes pairs (requires multiple attempts), and when it does pair I know it is sending the character "A" to the phone. However, the letter "A" never shows up on the phone.

Am I doing something wrong? Is there a work-around for this?

Thank you, Ken

  • I am not doing DFU. Re “pressing the reset button while the firmware is uploading” – I’m using a Redbear Labs Blend board. I don’t know why it works, but it seems to behave better when press the reset button while the Arduino IDE is in the middle of uploading a sketch. Perhaps this is something esoteric and specific to this board.
    I am very interested in what Apple has to say re the characters missing. Is Apple good at getting back to you with answers? Or should I not get my hopes up?

  • Hi Ki, As mentioned in my comment bellow, I didn't see any issue with pairing in the trace you sent. I'm not sure how pressing reset button when flashing have something to do with pairing issue with the phone.

    Regarding the Apple response, it's hard to say. But I will let you know when we have a solution.

  • Hi Hung,

    I just came across this article about iOS8.1

    "The first fix in Apple's list is a patch to the Bluetooth stack. It seems that in iOS 8, unencrypted Bluetooth connections were accepted if they came from HIDs, or Human Interface Devices. Your iPhone already has a keyboard (the on-screen one) accessible to anyone with physical access to an unlocked device, so allowing unencrypted connections from add-on HIDs sounds as though it should be low risk. But an unencrypted connection means that there is no shared secret between that device and your iPhone, and thus no way to authenticate the device when it connects....

  • ...(continued) So, other devices could pretend to be an already-paired-up HID, and thus pair automatically with your iPhone, even though your device had never seen them before. Bluetooth pairing is not supposed to be possible without your approval, for obvious security reasons, so this bug was fixed. The solution was simple: don't allow unencrypted HID connections."

    Full article here: nakedsecurity.sophos.com/.../

    Is this the reason why I am not able to get the HID Keyboard example to work on iOS8.4? Does the demo use an unencrypted HID connection?

    Thanks, Ken

  • Hi Ken,

    No I don't think it's the problem. Furthermore, my test here with iOS v8.4.1 and HID keyboard example(on nRF51) showed that the link was encrypted, not as what described in the link. I don't think iOS allow un-encryption connection for keyboard, since it can easily be tracked with eavesdropping.

Related