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

is multi touch HID possible with nrf51822 chip?

Hi All,

       Currently i am working on nrf51822 for multi touch HID.For that i have chosen mouse HID example as a reference, in which i have changed HID descriptor(single touch) and some other things.So, that single touch has been working.

And, if i changed the HID descriptor for multi touch, touch devices(touch laptop) were showing "Bluetooth driver error".

is it possible multi touch HID over nrf51822 as a reference of mouse HID example?

if possible, what all changes are to be required to work for multi touch.

so, please guide me how to implement multi touch HID over nrf51822.

regards

akash.

Parents
  • Hi Akash

    Multi touch should definitely be possible with the nRF51 series. 

    Microsoft have some good articles on how to use multi touch with windows, such as this one. Have you had a look at that?

    If you still can't make it work, are you able to attach your HID descriptor so I can have a look at it?

    Best regards
    Torbjørn

  • Thanks for your precious reply.

    yes, i have gone through windows multi touch HID, but didn't work for me.

    so, i have taken one more multi touch HID, which has been working over USB.

    if i emulated same HID into Bluetooth stack, it was not working.

    here, i am attaching my HID

    0x05, 0x0D, // Usage Page (Digitizer)
    0x09, 0x04, // Usage (Touch Screen)
    0xA1, 0x01, // Collection (Application)
    0x09, 0x22, // Usage (Finger)
    0xA1, 0x02, // Collection (Logical)
    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,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x30, // Usage (Tip Pressure)
    0x25, 0x7F, // Logical Maximum (127)
    0x75, 0x07, // Report Size (7)
    0x95, 0x01, // Report Count (1)
    0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x51, // Usage (0x51)
    0x26, 0xFF, 0x00, // Logical Maximum (255)
    0x75, 0x08, // Report Size (8)
    0x95, 0x01, // Report Count (1)
    0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
    0x09, 0x30, // Usage (X)
    0x09, 0x31, // Usage (Y)
    0x26, 0xFF, 0x7F, // Logical Maximum (32767)
    0x65, 0x00, // Unit (None)
    0x75, 0x10, // Report Size (16)
    0x95, 0x02, // Report Count (2)
    0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0xC0, // End Collection
    0x05, 0x0D, // Usage Page (Digitizer)
    0x27, 0xFF, 0xFF, 0x00, 0x00, // Logical Maximum (65534)
    0x75, 0x10, // Report Size (16)
    0x95, 0x01, // Report Count (1)
    0x09, 0x56, // Usage (0x56)
    0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x09, 0x54, // Usage (0x54)
    0x25, 0x05, // Logical Maximum (12)
    0x75, 0x08, // Report Size (8)
    0x95, 0x01, // Report Count (1)
    0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
    0x05, 0x0D, // Usage Page (Digitizer)
    0x09, 0x55, // Usage (0x55)
    0x25, 0x0A, // Logical Maximum (12)
    0x75, 0x08, // Report Size (8)
    0x95, 0x01, // Report Count (1)
    0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
    0xC0, // End Collection

    is there any changes are to be required in code(like feature report, input report,output report)?

    because, single touch has been working without adding any feature reports and output reports.

    regards,

    akash.

  • Hi Akash

    Please let me know once you had time to test it. 

    Best regards
    Torbjørn

  • Hi Ovrebekk

    I have tested it with workaround, but i was getting same error

    info> app: HID Mouse example started.
    <info> app: m_whitelist_peer_cnt 1, MAX_PEERS_WLIST 8
    <info> app: Fast advertising.
    <info> app: Connected
    <error> app: Fatal error
    <warning> app: System reset

    I am testing with Redmi Notepad 4.

    Best Regards,

    Akash

  • Hi

    That is very odd. 

    I double checked the test with 4 phones, and it never crashed. 3 of the phones also showed the button presses, while my old Nexus 5 didn't (but there was no crashes). 

    To make sure you run the test completely from scratch it is recommended to completely erase the flash of the nRF52DK, and to change the BLE address to avoid the phone trying to reconnect to it. 

    To change the address just increment one of the address bytes on line 445 of main.c by one, and rebuild the project (ie, change byte 4 from 0x33 to 0x34). 

    To erase the flash click on Menu -> Target -> Connect J-Link, followed by Menu -> Target  -> Erase All

    After that you have to flash the application again. 

    Also, if you can get or borrow an Android device from a different manufacturer it would be interesting to see if that works better. 

    I have got it to work on the Huawei P20 Pro, the Nexus 5X and the Samsung Galaxy S8. 

    Best regards
    Torbjørn

  • Hi

    Sorry for late reply.

    I have been busy with another task. If i got time to test, will test and let you know.

    Thanks for your whole support.

    BR

    Akash.

  • Hi

    No worries, take all the time you need Slight smile

    Best regards
    Torbjørn

Reply Children
Related