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

  • Hi Ken,

    Sorry for the late response. We have received report about the issue with the letter missing on the phone when using nRF8001 with Arduino. We have reported it back to Apple and also doing investigation on our side.

    About the issue the the phone sometime didn't pair ( as you mentioned). How frequently does that happen ? What happened when it didn't pair ? Could you capture a sniffer trace when pairing fail ?

  • Hi Hung,

    IOS8 fails to pair about 50% of the time. It is flaky – When pairing, the bluetooth status on the iphone quickly alternates between “connected” and “not connected” several times before settling (if lucky) on “connected”. Once it is "connected", it doesn't work as expected.

    Please find attached two wireshark sniffer traces saved on dropbox:

    1. Fails. IOS8 on an iphone 4s. After it pairs, I sent the letters “a”, “b” and “c” from the Nordic BLE board. We can see this in packets 3957, 4226, and 4420 respectively. However, no characters appear on the iphone. This demo code worked on this iphone 4s when it had iOS7. It stopped working after I updated OS to iOS8. www.dropbox.com/.../data_fail_ios8.pcapng

    2. Works. IOS 7 on an iphone 5. After it pairs, I sent the letters “a” and “b” from the Nordic BLE board. We can see this in packets 2565 and 2805. The characters appear on the iphone as desired. www.dropbox.com/.../data_works_ios7.pcapng

    Thank you in advance for your assistance!

    Cheers, Ken

  • Please, reply to my answer with the comment, not by creating another answer. You can split them into 2 comments if you have trouble with 900 char limit.

    From the sniffer trace, I don't see any issue with pairing in the data_fail_ios8.pcapng trace. Note that Pairing is when the link is encrypting. I don't see any issue with that. The link was encrypted correctly. Are you sure you sent me the correct failed bonding trace ?

  • Hi Hung, I have been working with the board for the past few hours. I seem to be able to bond the iOS8 reliably now if I press the reset button while the firmware is uploading. The problem remains that when it is paired, the characters sent from the BLE device to the iOS8 phone does not show up on the phone. It looks like the characters are being sent over the air (looking at the Wireshark trace), but the iphone is not processing them correctly. Do you see the same behavior on your side? Thanks in advance for your help! Cheers, Ken

  • I am not quite sure I understand "press the reset button while the firmware is uploading", are you also doing DFU ? What happens when reset when doing DFU ? Regarding the issue of the characters missing. As mentioned above, we have reproduced the issue and 've reported them to Apple, we are waiting for their response.

Related