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 */

    };
Reply
  • 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 */

    };
Children
Related