[colug-432] HID descriptor

Vince Herried Vince at PlanetVince.com
Sat Nov 15 13:25:55 EST 2014


I have a graphics tablet that I'm working with a driver developer to get
working.
We have a driver that works for reporting the x, y, and z ( pressure )
but doesn't work with the buttons.

I've traced the device and have documented the usb stream as follows:
07 E0 01 01 80 ......  Button 1 (nearest the logo)
07 E0 01 01 40 ......  Button 2
07 E0 01 01 20 ......  Button 3
07 E0 01 01 10 ......  Button 4
07 E0 01 01 08 ......  Button 5
07 E0 01 01 04 ......  Button 6
07 E0 01 01 02 ......  Button 7
07 E0 01 01 01 ......  Button 8
07 E0 01 01 00         Button up

when the stylus is used the output is then

07 01 xx xx yy yy zz zz  ( where xx is the axis and yy is y axis and zz is
the preasure and the 01 means the tip is in contact

07 02 .....  means barrel switch 1 is on
07 40 ...... means barrel switch 2 is on
07 80  ..... stylus is in proximity
07 C0 ...... stylus left the area

it appears I need to write a new version of the report descrptor
to support the buttons.
The existing driver has the following:

static const __u8 huion_tablet_rdesc_template[] = {
        0x05, 0x0D,             /*  Usage Page (Digitizer),
*/
        0x09, 0x02,             /*  Usage (Pen),
*/
        0xA1, 0x01,             /*  Collection (Application),
*/
        0x85, 0x07,             /*      Report ID (7),
*/
        0x09, 0x20,             /*      Usage (Stylus),
*/
        0xA0,                   /*      Collection (Physical),
*/
        0x14,                   /*          Logical Minimum (0),
*/
        0x25, 0x01,             /*          Logical Maximum (1),
*/
        0x75, 0x01,             /*          Report Size (1),
*/
        0x09, 0x42,             /*          Usage (Tip Switch),
*/
        0x09, 0x44,             /*          Usage (Barrel Switch),
*/
        0x09, 0x46,             /*          Usage (Tablet Pick),
*/
        0x95, 0x03,             /*          Report Count (3),
*/
        0x81, 0x02,             /*          Input (Variable),
*/
        0x95, 0x03,             /*          Report Count (3),
*/
        0x81, 0x03,             /*          Input (Constant, Variable),
*/
        0x09, 0x32,             /*          Usage (In Range),
*/
        0x95, 0x01,             /*          Report Count (1),
*/
        0x81, 0x02,             /*          Input (Variable),
*/
        0x95, 0x01,             /*          Report Count (1),
*/
        0x81, 0x03,             /*          Input (Constant, Variable),
*/
        0x75, 0x10,             /*          Report Size (16),
*/
        0x95, 0x01,             /*          Report Count (1),
*/
        0xA4,                   /*          Push,
*/
        0x05, 0x01,             /*          Usage Page (Desktop),
*/
        0x65, 0x13,             /*          Unit (Inch),
*/
        0x55, 0xFD,             /*          Unit Exponent (-3), 0x55,0x0d ?
*/
        0x34,                   /*          Physical Minimum (0),
*/
        0x09, 0x30,             /*          Usage (X),
*/
        0x27, HUION_PH(X_LM),   /*          Logical Maximum (PLACEHOLDER),
*/
        0x47, HUION_PH(X_PM),   /*          Physical Maximum (PLACEHOLDER),
*/
        0x81, 0x02,             /*          Input (Variable),
*/
        0x09, 0x31,             /*          Usage (Y),
*/
        0x27, HUION_PH(Y_LM),   /*          Logical Maximum (PLACEHOLDER),
*/
        0x47, HUION_PH(Y_PM),   /*          Physical Maximum (PLACEHOLDER),
*/
        0x81, 0x02,             /*          Input (Variable),
*/
        0xB4,                   /*          Pop,
*/
        0x09, 0x30,             /*          Usage (Tip Pressure),
*/
        0x27,
        HUION_PH(PRESSURE_LM),  /*          Logical Maximum (PLACEHOLDER),
*/
        0x81, 0x02,             /*          Input (Variable),
*/
        0xC0,                   /*      End Collection,
*/
        0xC0                    /*  End Collection
*/
};


Any one know how to wedge the button information into this thigy?
My first foray into USB cracking.

----------
Vince
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.colug.net/pipermail/colug-432/attachments/20141115/3a84adf2/attachment.html 


More information about the colug-432 mailing list