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

HID Keyboard Example Not Recognized by iPad

I programmed a PCA10001 with the HID Keyboard example and changed the preprocessor code from NRF6310 to PCA10001. The functions were tested according to the online HID Keyboard Application notes and everything worked as expected. (Note: The Application notes used were flagged as "old documentation" but it still worked.)

I then tried to connect the HID to an iPad. After enabling BT in Settings on the iPad the HID was not recognized. I thought the problem might be that the Company ID needed to be changed from Nodic's (x59) to Apple's (4C) but answers from a previous post say that the HID does not use Company ID so this should not be a problem. I installed the LightBlue app on the iPad and it does find the HID. Why can I not link to the iPad directly?

Parents
  • @Tom: It's explainable. If you don't enable IS_SRVC_CHANGED_CHARACT_PRESENT = 1 , the iOS device will make an assumption that your device will never change the services table. And it will cache your attribute table and keep thinking your device is the beacon. MCP when connect to the device will force the iOS device to update the advertising packet and the new attribute table.

    So, make sure you turn on IS_SRVC_CHANGED_CHARACT_PRESENT in both beacon firmware and the keyboard firmware.

    However, this doesn't guarantee the phone will update the advertising packet (it guarantee the phone will update the attribute table though). So you may still need to use MCP to scan and connect if you want iOS device to remove the cached advertising packet.

Reply
  • @Tom: It's explainable. If you don't enable IS_SRVC_CHANGED_CHARACT_PRESENT = 1 , the iOS device will make an assumption that your device will never change the services table. And it will cache your attribute table and keep thinking your device is the beacon. MCP when connect to the device will force the iOS device to update the advertising packet and the new attribute table.

    So, make sure you turn on IS_SRVC_CHANGED_CHARACT_PRESENT in both beacon firmware and the keyboard firmware.

    However, this doesn't guarantee the phone will update the advertising packet (it guarantee the phone will update the attribute table though). So you may still need to use MCP to scan and connect if you want iOS device to remove the cached advertising packet.

Children
No Data
Related