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

The Bluetooth keyboard sample does not work in an IOS 14.3 environment.

The Bluetooth keyboard sample does not work in an ipad(IOS 14.3)

The development board I used was nrf52840dk_nrf52840 (PCA10056).

I built nRF Connect SDK v1.4.2 through SEGGER Embedded Studio in desktop.


The sources are as follows:
( github.com/.../main.c)
Pairing works well in window10 (Desktop) android (galaxy20) environments, and "hello" messages are sent well when the switch button is pressed.
However, the pairing was successful in the ipad (IOS) environment, but the data failed to transmit.
And if the device is disconnected, pairing on other devices is not possible.

Why doesn't it work normally in IOS?

What else should I do?

I'd really appreciate it if you could answer.

  • No need to apologize. I hope you're doing okay! There is no rush.

    Best regards,
    Carl Richard

  • I tested it on the nrf52840dk_nrf52840 board.
    We replaced OUTPUT_REPORT_MAX_LEN.

    Clicking the button to send a "hello" message does not cause errors in the bt_hids_inf_rep_send() function, but does not send data to the ipad.

    ipad information :

    connect :

    Send to Notepad :

    Galaxy s20, Galaxy Tab, desktop window10, and window7 all work well.
    However, in IOS, when OUTPUT_REPORT_MAX_LEN = 1, the key_report_con_send() function is executed only once by pressing the Send Message button.
    Pressing the button again does not execute the key_report_con_send() function.
    When modified to OUTPUT_REPORT_MAX_LEN = 2, pressing the Send Message button does not cause errors but does not send data.

  • Hi!

    Found the issue! Set the defines INPUT_REP_KEYS_REF_ID and OUTPUT_REP_KEYS_REF_ID to 0 (they are set to 1 in the original sample). This should enable the application to work well with iOS device.

    You can remove the change I purposed earlier. It is erroneous.

    Edit: note that this fix will not work for other HID devices like mouse or custom reports.

    Best regards,
    Carl Richard

  • When I changed INPUT_REP_KEYS_REF_ID and OUTPUT_REP_KEYS_REF_ID to 0, I found that iPhone 11pro works well!
    I don't have an ipad right now, so I'll check the operation next week.
    Thank you!

  • I have one more question.
    After the first connection with the nrf52840dk_nrf52840 and other devices, we checked the behavior of the "hello" character transfer.

    1. First-time connection :

    2. Verify Desktop Connection

    3. Verify desktop (window10) behavior

    4. Resetting power to the board will confirm the paired status

    5. The paired device is connected by pressing the start advertising button (button4)

    6. Press the "hello" message send button(button1), but it is not sent to Notepad and the following error message occurs:

    Once the advertising button is pressed, the paired device is automatically connected, but there is no change in the value of the battery and does not send a "hello" message.
    Disconnecting and reconnecting from desktop works well.
    In conclusion, once the board is reset, the paired device is automatically connected, but it does not work properly.
    I must manually reconnect the board whenever it is powered off and on.
    What should I do to solve this...?

Related