PSoC USB HID Single Touch Device

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
makrc_1991011
Level 1
Level 1

Hello,

I'm trying to use a PSoC as a USB HID Single Touch Device. (PSoC 4200L with USB interface)

I used the following Descriptor that works as a mouse with absolute coordinates:

0x05, 0x01// USAGE_PAGE (Generic Desktop)

   0x09, 0x02// USAGE (Mouse)

   0xa1, 0x01// COLLECTION (Application)

   0x09, 0x01// USAGE (Pointer)

   0xa1, 0x00// COLLECTION (Physical)

   0x05, 0x09// USAGE_PAGE (Button)

   0x19, 0x01// USAGE_MINIMUM (Button 1)

   0x29, 0x03// USAGE_MAXIMUM (Button 3)

   0x15, 0x00// LOGICAL_MINIMUM (0)

   0x25, 0x01// LOGICAL_MAXIMUM (1)

   0x95, 0x03// REPORT_COUNT (3)

   0x75, 0x01// REPORT_SIZE (1)

   0x81, 0x02// INPUT (Data,Var,Abs)

   0x95, 0x01// REPORT_COUNT (1)

   0x75, 0x05// REPORT_SIZE (5)

   0x81, 0x03// INPUT (Cnst,Var,Abs)

   0x05, 0x01// USAGE_PAGE (Generic Desktop)

   0x09, 0x30// USAGE (X)

   0x09, 0x31// USAGE (Y)

   0x35, 0x00// PHYSICAL_MINIMUM (0)

   0x46, 0x9d, 0x0b// PHYSICAL_MAXIMUM (2973)

   0x15, 0x00// LOGICAL_MINIMUM (0)

   0x26, 0x9d, 0x0b// LOGICAL_MAXIMUM (2973)

   0x65, 0x11// UNIT (SI Lin:Distance)

   0x55, 0x0e// UNIT_EXPONENT (-2)

   0x75, 0x10// REPORT_SIZE (16)

   0x95, 0x02// REPORT_COUNT (2)

   0x81, 0x02// INPUT (Data,Var,Abs)

   0xc0// END_COLLECTION

   0xc0   // END_COLLECTION

It works fine with Windows 7 and Linux, but the problem is that my windows embedded CE 6.0 device interprets the coordinates as relative values.

Does somebody has experience with single touch devices that works even with windows embedded and could help me with that problem?

Or does somebody know any example project that I overlooked?

Best regards, Markus

0 Likes
1 Solution
Anonymous
Not applicable

Hi,

I would recommend you to find a device that works with your host, capture the USB traces during enumeration to find out how descriptors are set and use the similar descriptors in PSoC.

Regards,

- Madhu Sudhan

View solution in original post

0 Likes
1 Reply
Anonymous
Not applicable

Hi,

I would recommend you to find a device that works with your host, capture the USB traces during enumeration to find out how descriptors are set and use the similar descriptors in PSoC.

Regards,

- Madhu Sudhan

0 Likes