USB-HID-Transport
Customer Documentation
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 modeThis 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 modeThe 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 |
| 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 |
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