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 Ovrebekk

    I am using IAR C/C++ Compiler for ARM

    Redmi notepad 2.

  • Hi Akash

    I also get an error now when trying to send data. The error I get is 0x3401, which is the 'system attributes missing' error. 

    This is interesting, as I can't remember seeing this issue before. 

    I need some more time to investigate this, but one quick workaround that allows me to send packets is to disconnect the device from the phone and reconnect after you have paired it for the first time. (The easiest way to do this in Android is simply to disable Bluetooth after you first paired, and enable it again. Double check the log from the kit to make sure it disconnects and reconnects.)

    After you have connected for the second time the system attributes should be properly set, and you should be able to send packets without the error occurring. 

    Best regards
    Torbjørn

  • Hi Ovrebekk

    I will test it again with this workaround.

    Best 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

Reply Children
Related