This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

HID touch can't work on IOS15 (work on android & windows)

Hi, There, I use 52832 to develop a HID touch(single point) device, it can work on android & windows, but can't work on iphone13(ios15). It can connect to iphone, but no touch effect.

Any suggestion would be great help. thanks.

Here is the report map:

uint8_t touch_rep_map_data [] = {
    0x05, 0x0D, // USAGE_PAGE (Digitizers)
    0x09, 0x04, // USAGE (Touch Screen)
    0xa1, 0x01, // COLLECTION (Application)
    0x85, 0x01, //   REPORT_ID(TOUCH)
    0x09, 0x22, //   USAGE (0X20:STYLUS, 0X22:Finger)
    0xA1, 0x00, //   COLLECTION (Physical)
    0x09, 0x42, //     USAGE (Tip Switch)
    0x15, 0x00, //     LOGICAL_MINIMUM (0)
    0x25, 0x01, //     LOGICAL_MAXIMUM (1)
    0x75, 0x01, //     REPORT_SIZE (1)
    0x95, 0x01, //     REPORT_COUNT (1)
    0x81, 0x02, //     INPUT (Data,Var,Abs)
    0x09, 0x32, //     USAGE (In Range)     //in range a must
    0x81, 0x02, //     INPUT (Data,Var,Abs)
    0x95, 0x06, //     REPORT_COUNT (6)
    0x81, 0x03, //     INPUT (Cnst,Ary,Abs)
    0x75, 0x08, //     REPORT_SIZE (8)
    0x09, 0x51, //     USAGE(contact identifier)
    0x25, 0x08, //     Logical Maximum(8)
    0x95, 0x01, //     Report_count(1)
    0x81, 0x02, //     Input(data, variable,abs)
    0x05, 0x01, //     Usage Page (Generic Desktop)
    0x75, 0x10, //     REPORT_SIZE(16)
    0x95, 0x01, //     REPORT_COUNT(1)
    0x09, 0x30, //     USAGE(x)
    0x15, 0x00, //LOGICAL_MINIMUM (0)
    0x26, 0x38, 0x04, //Logical maximum(1080) :low part, high part: index: 53,54
    0x35, 0x00, //     PYSICAL mimimum(0)
    0x46, 0x00, 0x00, //PHYSICAL maximum(1080): low part,high part: index: 58,59
    0x81, 0x02, //     INPUT(data, variable,ABS)
    0x09, 0x31, //     USAGE(Y)
    0x15, 0x00, //LOGICAL_MINIMUM (0)
    0x26, 0x70, 0x08, //Logical maximum(2160) :low part, high part: index: 67,68
    0x35, 0x00, //     PYSICAL mimimum(0)
    0x46, 0x00, 0x00, //PHYSICAL maximum(2160):low part, high part: index: 72,73
    0x81, 0x02, //     INPUT(DATA, VARIABLE, ABS)
    0xc0,       //END OF COLLECTION
    0x05, 0x0D, // USAGE_PAGE (Digitizers)  //the folliowing part is a must
    0x09, 0x54, // USAGE (Contact Count)
    0x95, 0x01, //   REPORT_COUNT(1)
    0x75, 0x08, //   REPORT_SIZE(8)
    0x15, 0x00, //   LOGICAL_MINIMUM (0)
    0x25, 0x08, //   LOGICAL_MAXMUM (8)
    0x81, 0x02, //   INPUT(DATA, VIRABLE, ABS)
    0x09, 0x55, //   USAGE(Maximum Count)
    0xb1, 0x02, //   FEATURE (Data,Var,Abs)
    0xc0,       // END of collection
};

the default gap parameters are used:

#define MIN_CONN_INTERVAL               MSEC_TO_UNITS(7.5, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL               MSEC_TO_UNITS(15, UNIT_1_25_MS)  
#define SLAVE_LATENCY                          20                               
#define CONN_SUP_TIMEOUT                MSEC_TO_UNITS(3000, UNIT_10_MS)  

#define FIRST_CONN_PARAMS_UPDATE_DELAY  APP_TIMER_TICKS(5000)            
#define NEXT_CONN_PARAMS_UPDATE_DELAY   APP_TIMER_TICKS(30000)          

  • Can you give me more information on the sniffer trace for not working setup so that I can analyze to see which side of the devices are not working properly?

    Also which SDK have you been using? Is it possible to share the project for me to able to reproduce it?

Related