no HID mouse movement with iPad despite successful BLE connection

Hello,

We are trying to use the nrf5340 as a wireless HID mouse over BLE. Our cursor moves just fine on Windows 10, Windows 11, a Mac, and two Android tablets (Lenovo, Amazon). However, we do not see cursor movement on an iPad after connecting the device to it. Our iPad uses iOS version 15.7.2, which supports BLE devices. Skimming through the Apple Accessory Guidelines, nothing seems off, and I played around with some extra security settings in the project config file. I grabbed a BLE sniffer log, which I have attached below, but nothing stood out to me as being off.

Any idea where to start looking to resolve this issue?

sniffer-iPad.pcapng

Parents
  • Hi!
    Do you only have HID mouse on the device, or do you have other HID services as well, e.g. mouse+keyboard in the same HID report map?

  • Hello,

    We are only using an HID mouse. Here is the report map for reference:

    static uint8_t report_map[] = {
    
        0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
        0x09, 0x02, /* Usage (Mouse) */
        0xA1, 0x01, /* Collection (Application) */
        0x85, 0x01, /* Report Id (1) */
        0x09, 0x01, /* Usage (Pointer) */
        0xA1, 0x00, /* Collection (Physical) */
        0x05, 0x09, /* Usage Page (Button) */
        0x19, 0x01, /* Usage Minimum (0x01) */
        0x29, 0x03, /* Usage Maximum (0x03) */
        0x15, 0x00, /* Logical Minimum (0) */
        0x25, 0x01, /* Logical Maximum (1) */
        0x95, 0x03, /* Report Count (3) */
        0x75, 0x01, /* Report Size (1) */
        0x81, 0x02, /* Input (Data,Var,Abs,No Wrap,Linear,...) */
        0x95, 0x01, /* Report Count (1) */
        0x75, 0x05, /* Report Size (5) */
        0x81, 0x03, /* Input (Const,Var,Abs,No Wrap,Linear,...) */
        0x05, 0x01, /* Usage Page (Generic Desktop Ctrls) */
        0x09, 0x30, /* Usage (X) */
        0x09, 0x31, /* Usage (Y) */
        0x09, 0x38, /* Usage (Wheel) */
        0x16, 0x00, 0x80, /* Logical Minimum (-32768) */ //81???
        0x26, 0xFF, 0x7F, /* Logical Maximum (32767) */
        0x75, 0x10, /* Report Size (16) */
        0x95, 0x03, /* Report Count (3) */
        0x81, 0x06, /* Input (Data,Var,Rel,No Wrap,Linear,...) */
        0xC0,       /* End Collection */
        0xC0        /* End Collection */

    };
  • What iPad model are you using?

    Do you have one of these listed here? https://support.apple.com/en-us/108938

    Also, have you enabled AssistiveTouch?

Reply Children
  • Hello,

    We are having the same issue and made an interesting discovery.

    Including a report ID in the report map seems to be the problem with ipad:

     0x85, 0x01, /* Report Id (1) */

    Except that if you dont include a report ID, or set it to zero, then windows doesnt like it and your device doesnt work with windows.

    Hopefully this helps us move forwards.

    I have not yet exhaustively tried every possible report ID value...

Related