Skip to content
English
  • There are no suggestions because the search field is empty.

USB-HID-Transport

Customer Documentation

Customer Documentation: Neonode® Touch Sensor Module User's Guide : USB HID Transport

When connected via USB, the sensor communicates in Full Speed (12 Mbit/s) in two modes: Raw HID mode and HID Touchscreen mode. HID Touchscreen mode is initiated automatically as soon as the sensor is plugged in. When using Raw HID mode, the sensor must be initiated and enabled to start receiving notifications.

Raw HID mode

This mode uses a mix of two HID Feature Reports and an HID Input Report to communicate with the host.

  • Send data to the device by writing to Feature Report 1. 
  • Input Report 2 indicates that there is data to read
  • Read data from the device by reading from Feature Report 2.

zForce SDK can be used to communicate in this mode.

HID Touchscreen mode

The sensor acts as a HID Input device and communicates directly with the OS.

HID Report Descriptor
 
Item data
Usage (Touch Screen) 09 04 
Collection (Application) A1 01 
    Report ID (4) 85 04 
    Usage (Contact Count Maximum) 09 55 
    Logical Minimum (0) 15 00 
    Logical Maximum (-1) 25 FF 
    Report Size (8) 75 08 
    Report Count (1) 95 01 
    Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 02 
    Report ID (3) 85 03 
    Usage (Contact Count) 09 54 
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    Usage (Scan Time) 09 56 
    Logical Maximum (65535) 27 FF FF 00 00 
    Report Size (16) 75 10 
    Unit Exponent (-4) 55 0C 
    Unit (SI Lin: Time (s)) 66 01 10 
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    Usage (Finger) 09 22 
    Collection (Logical) A1 02 
        Usage (Tip Switch) 09 42 
        Logical Maximum (1) 25 01 
        Report Size (1) 75 01 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Contact Identifier) 09 51 
        Logical Maximum (127) 25 7F 
        Report Size (7) 75 07 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Generic Desktop) 05 01 
        Usage (X) 09 30 
        Logical Maximum (65535) 27 FF FF 00 00 
        Report Size (16) 75 10 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Y) 09 31 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Digitizer) 05 0D 
        Unit Exponent (-2) 55 0E 
        Unit (SI Lin: Length (cm)) 65 11 
        Usage (Width) 09 48 
        Usage (Height) 09 49 
        Report Count (2) 95 02 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    End Collection C0 
    Usage (Finger) 09 22 
    Collection (Logical) A1 02 
        Usage (Tip Switch) 09 42 
        Logical Maximum (1) 25 01 
        Report Size (1) 75 01 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Contact Identifier) 09 51 
        Logical Maximum (127) 25 7F 
        Report Size (7) 75 07 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Generic Desktop) 05 01 
        Usage (X) 09 30 
        Logical Maximum (65535) 27 FF FF 00 00 
        Report Size (16) 75 10 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Y) 09 31 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Digitizer) 05 0D 
        Unit Exponent (-2) 55 0E 
        Unit (SI Lin: Length (cm)) 65 11 
        Usage (Width) 09 48 
        Usage (Height) 09 49 
        Report Count (2) 95 02 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    End Collection C0 
    Usage (Finger) 09 22 
    Collection (Logical) A1 02 
        Usage (Tip Switch) 09 42 
        Logical Maximum (1) 25 01 
        Report Size (1) 75 01 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Contact Identifier) 09 51 
        Logical Maximum (127) 25 7F 
        Report Size (7) 75 07 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Generic Desktop) 05 01 
        Usage (X) 09 30 
        Logical Maximum (65535) 27 FF FF 00 00 
        Report Size (16) 75 10 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Y) 09 31 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Digitizer) 05 0D 
        Unit Exponent (-2) 55 0E 
        Unit (SI Lin: Length (cm)) 65 11 
        Usage (Width) 09 48 
        Usage (Height) 09 49 
        Report Count (2) 95 02 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    End Collection C0 
    Usage (Finger) 09 22 
    Collection (Logical) A1 02 
        Usage (Tip Switch) 09 42 
        Logical Maximum (1) 25 01 
        Report Size (1) 75 01 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Contact Identifier) 09 51 
        Logical Maximum (127) 25 7F 
        Report Size (7) 75 07 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Generic Desktop) 05 01 
        Usage (X) 09 30 
        Logical Maximum (65535) 27 FF FF 00 00 
        Report Size (16) 75 10 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Y) 09 31 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Digitizer) 05 0D 
        Unit Exponent (-2) 55 0E 
        Unit (SI Lin: Length (cm)) 65 11 
        Usage (Width) 09 48 
        Usage (Height) 09 49 
        Report Count (2) 95 02 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    End Collection C0 
    Usage (Finger) 09 22 
    Collection (Logical) A1 02 
        Usage (Tip Switch) 09 42 
        Logical Maximum (1) 25 01 
        Report Size (1) 75 01 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Contact Identifier) 09 51 
        Logical Maximum (127) 25 7F 
        Report Size (7) 75 07 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Generic Desktop) 05 01 
        Usage (X) 09 30 
        Logical Maximum (65535) 27 FF FF 00 00 
        Report Size (16) 75 10 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Y) 09 31 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Digitizer) 05 0D 
        Unit Exponent (-2) 55 0E 
        Unit (SI Lin: Length (cm)) 65 11 
        Usage (Width) 09 48 
        Usage (Height) 09 49 
        Report Count (2) 95 02 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    End Collection C0 
    Usage (Finger) 09 22 
    Collection (Logical) A1 02 
        Usage (Tip Switch) 09 42 
        Logical Maximum (1) 25 01 
        Report Size (1) 75 01 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Contact Identifier) 09 51 
        Logical Maximum (127) 25 7F 
        Report Size (7) 75 07 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Generic Desktop) 05 01 
        Usage (X) 09 30 
        Logical Maximum (65535) 27 FF FF 00 00 
        Report Size (16) 75 10 
        Report Count (1) 95 01 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage (Y) 09 31 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
        Usage Page (Digitizer) 05 0D 
        Unit Exponent (-2) 55 0E 
        Unit (SI Lin: Length (cm)) 65 11 
        Usage (Width) 09 48 
        Usage (Height) 09 49 
        Report Count (2) 95 02 
        Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    End Collection C0 
End Collection C0 
Usage Page (Vendor-Defined 1) 06 00 FF 
Usage (Vendor-Defined 1) 09 01 
Collection (Application) A1 01 
    Report ID (1) 85 01 
    Usage (Vendor-Defined 1) 09 01 
    Report Size (8) 75 08 
    Report Count (1) 95 01 
    Logical Minimum (0) 15 00 
    Logical Maximum (-1) 25 FF 
    Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 02 
    Usage (Vendor-Defined 2) 09 02 
    Report Count (255) 95 FF 
    Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Buf) B2 82 01 
    Report ID (2) 85 02 
    Usage (Vendor-Defined 1) 09 01 
    Report Count (1) 95 01 
    Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 02 
    Usage (Vendor-Defined 2) 09 02 
    Report Count (255) 95 FF 
    Feature (Data,Var,Abs,NWrp,Lin,Pref,NNul,Vol,Buf) B2 82 01 
    Usage (Vendor-Defined 3) 09 03 
    Report Size (1) 75 01 
    Logical Maximum (1) 25 01 
    Report Count (1) 95 01 
    Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 
    Report Size (7) 75 07 
    Input (Cnst,Ary,Abs) 81 01 
    Report Size (8) 75 08 
    Report ID (128) 85 80 
    Usage (Vendor-Defined 1) 09 01 
    Feature (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 03 
    Report ID (130) 85 82 
    Usage (Vendor-Defined 1) 09 01 
    Feature (Cnst,Var,Abs,NWrp,Lin,Pref,NNul,NVol,Bit) B1 03 
End Collection C0 
Parsed reports by Report ID
 
Input Report 2
Bit offset Bit count Description
0 1 Internal use
1 7 (Not used)
Input Report 3
Bit offset Bit count Description
0 8 Contact count
8 16 Scan Time
24 1 Tip Switch
25 7 Contact identifier
32 16 X
48 16 Y
64 16 Width
80 16 Height
96 1 Tip Switch
97 7 Contact identifier
104 16 X
120 16 Y
136 16 Width
152 16 Height
168 1 Tip Switch
169 7 Contact identifier
176 16 X
192 16 Y
208 16 Width
224 16 Height
240 1 Tip Switch
241 7 Contact identifier
248 16 X
264 16 Y
280 16 Width
296 16 Height
312 1 Tip Switch
313 7 Contact identifier
320 16 X
336 16 Y
352 16 Width
368 16 Height
384 1 Tip Switch
385 7 Contact identifier
392 16 X
408 16 Y
424 16 Width
440 16 Height
Feature Report 1 - Write
Bit offset Bit count Description
0 8 Payload size (bytes)
8 2040 Payload
Feature Report 2 - Read
Bit offset Bit count Description
0 8 Payload size (bytes)
8 2040 Payload
Feature Report 4
Bit offset Bit count Description
0 8 Contact count maximum
Feature Report 128
Bit offset Bit count Description
0 8 Internal use
Feature Report 130
Bit offset Bit count Description
0 8 Internal use
Known limitations

A race condition might occur when calling the functions HidD_GetFeature, HidD_GetManufacturerString, HidD_GetProductString or HidD_GetSerialNumberString simultaneously. A Mutex lock might be needed to only call one of them at the same time, otherwise they could fail randomly.

Document generated by Confluence on Sep 11, 2025 11:01