On Thu, 7 Jan 2021 10:20:34 -0700
Thomas Frohwein <[email protected]> wrote:
> On Wed, Jan 06, 2021 at 10:48:58PM +0100, Marcus Glocker wrote:
>
> [...]
>
> > The implementation as such looks fine to me.
> > But I quickly gave the diff a spin before on amd64 using my PS
> > controller, and the result is not what I would expect.
> >
> > With uhid, I can access the controller on /dev/uhid6. The attach
> > looks like this:
> >
> > imac /bsd: uaudio0 at uhub4 port 4 configuration 1 interface 1 "Sony
> > Interactive Entertainment Wireless Controller" rev 2.00/1.00 addr 6
> > imac /bsd: uaudio0: class v1, full-speed, sync, channels: 2 play, 1
> > rec, 4 ctls
> > imac /bsd: audio1 at uaudio0
> > imac /bsd: uhidev6 at uhub4 port 4 configuration 1 interface 3 "Sony
> > Interactive Entertainment Wireless Controller" rev 2.00/1.00 addr 6
> > imac /bsd: uhidev6: iclass 3/0, 180 report ids
> > imac /bsd: uhid6 at uhidev6 reportid 1: input=63, output=0,
> > feature=0
>
> [...]
>
> > imac /bsd: uhid50 at uhidev6 reportid 179: input=0, output=0,
> > feature=63 imac /bsd: uhid51 at uhidev6 reportid 180: input=0,
> > output=0, feature=63
> >
> > ujoy instead attached to previous uhid51, and there it is of no use
> > obviously. I still can access the controller through uhid6. The
> > attach with ujoy looks like this:
> >
> > imac /bsd: uaudio0 at uhub4 port 4 configuration 1 interface 1 "Sony
> > Interactive Entertainment Wireless Controller" rev 2.00/1.00 addr 6
> > imac /bsd: uaudio0: class v1, full-speed, sync, channels: 2 play, 1
> > rec, 4 ctls
> > imac /bsd: audio1 at uaudio0
> > imac /bsd: uhidev6 at uhub4 port 4 configuration 1 interface 3 "Sony
> > Interactive Entertainment Wireless Controller" rev 2.00/1.00 addr 6
> > imac /bsd: uhidev6: iclass 3/0, 180 report ids
>
> [...]
>
> > imac /bsd: uhid50 at uhidev6 reportid 179: input=0, output=0,
> > feature=63 imac /bsd: ujoy0 at uhidev6 reportid 180: input=0,
> > output=0, feature=63
> >
> > I haven't analyzed yet what happens in the code.
> > I can provide an lsusb of the controller if it's more obvious to
> > you.
>
> I have heard from others who tried the diff that the PS4 controller is
> causing problems with the way it attaches. I ordered one to trial-and-
> error this myself at home. Could you share output of lsusb -vv? Thanks
> for giving it a try!
Sure, here we go.
If I can find anything myself in the meantime I let you know.
Bus 001 Device 006: ID 054c:09cc Sony Corp.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x054c Sony Corp.
idProduct 0x09cc
bcdDevice 1.00
iManufacturer 1 Sony Interactive Entertainment
iProduct 2 Wireless Controller
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 225
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 71
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0101 USB Streaming
bAssocTerminal 6
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls( 0) 0x03
Mute Control
Volume Control
bmaControls( 1) 0x00
bmaControls( 2) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0402 Headset
bAssocTerminal 4
bSourceID 2
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0402 Headset
bAssocTerminal 3
bNrChannels 1
wChannelConfig 0x0000
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 5
bSourceID 4
bControlSize 1
bmaControls( 0) 0x03
Mute Control
Volume Control
bmaControls( 1) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 6
wTerminalType 0x0101 USB Streaming
bAssocTerminal 1
bSourceID 5
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 1
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 32000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 9
Transfer Type Isochronous
Synch Type Adaptive
Usage Type Data
wMaxPacketSize 0x0084 1x 132 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 6
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 1
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 16000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0022 1x 34 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 507
Report Descriptor: (length is 507)
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x05 ] 5
Gamepad
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x01 ] 1
Item(Local ): Usage, data= [ 0x30 ] 48
Direction-X
Item(Local ): Usage, data= [ 0x31 ] 49
Direction-Y
Item(Local ): Usage, data= [ 0x32 ] 50
Direction-Z
Item(Local ): Usage, data= [ 0x35 ] 53
Rotate-Z
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Local ): Usage, data= [ 0x39 ] 57
Hat Switch
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x07 ] 7
Item(Global): Physical Minimum, data= [ 0x00 ] 0
Item(Global): Physical Maximum, data= [ 0x3b 0x01 ] 315
Item(Global): Unit, data= [ 0x14 ] 20
System: English Rotation, Unit: Degrees
Item(Global): Report Size, data= [ 0x04 ] 4
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x42 ] 66
Data Variable Absolute No_Wrap Linear
Preferred_State Null_State Non_Volatile Bitfield
Item(Global): Unit, data= [ 0x00 ] 0
System: None, Unit: (None)
Item(Global): Usage Page, data= [ 0x09 ] 9
Buttons
Item(Local ): Usage Minimum, data= [ 0x01 ] 1
Button 1 (Primary)
Item(Local ): Usage Maximum, data= [ 0x0e ] 14
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Global): Report Count, data= [ 0x0e ] 14
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x20 ] 32
(null)
Item(Global): Report Size, data= [ 0x06 ] 6
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x7f ] 127
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x33 ] 51
Rotate-X
Item(Local ): Usage, data= [ 0x34 ] 52
Rotate-Y
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x21 ] 33
(null)
Item(Global): Report Count, data= [ 0x36 ] 54
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x05 ] 5
Item(Local ): Usage, data= [ 0x22 ] 34
(null)
Item(Global): Report Count, data= [ 0x1f ] 31
Item(Main ): Output, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x04 ] 4
Item(Local ): Usage, data= [ 0x23 ] 35
(null)
Item(Global): Report Count, data= [ 0x24 ] 36
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x02 ] 2
Item(Local ): Usage, data= [ 0x24 ] 36
(null)
Item(Global): Report Count, data= [ 0x24 ] 36
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x08 ] 8
Item(Local ): Usage, data= [ 0x25 ] 37
(null)
Item(Global): Report Count, data= [ 0x03 ] 3
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x10 ] 16
Item(Local ): Usage, data= [ 0x26 ] 38
(null)
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x11 ] 17
Item(Local ): Usage, data= [ 0x27 ] 39
(null)
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x12 ] 18
Item(Global): Usage Page, data= [ 0x02 0xff ] 65282
(null)
Item(Local ): Usage, data= [ 0x21 ] 33
(null)
Item(Global): Report Count, data= [ 0x0f ] 15
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x13 ] 19
Item(Local ): Usage, data= [ 0x22 ] 34
(null)
Item(Global): Report Count, data= [ 0x16 ] 22
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x14 ] 20
Item(Global): Usage Page, data= [ 0x05 0xff ] 65285
(null)
Item(Local ): Usage, data= [ 0x20 ] 32
(null)
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x15 ] 21
Item(Local ): Usage, data= [ 0x21 ] 33
(null)
Item(Global): Report Count, data= [ 0x2c ] 44
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Usage Page, data= [ 0x80 0xff ] 65408
(null)
Item(Global): Report ID, data= [ 0x80 ] 128
Item(Local ): Usage, data= [ 0x20 ] 32
(null)
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x81 ] 129
Item(Local ): Usage, data= [ 0x21 ] 33
(null)
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x82 ] 130
Item(Local ): Usage, data= [ 0x22 ] 34
(null)
Item(Global): Report Count, data= [ 0x05 ] 5
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x83 ] 131
Item(Local ): Usage, data= [ 0x23 ] 35
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x84 ] 132
Item(Local ): Usage, data= [ 0x24 ] 36
(null)
Item(Global): Report Count, data= [ 0x04 ] 4
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x85 ] 133
Item(Local ): Usage, data= [ 0x25 ] 37
(null)
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x86 ] 134
Item(Local ): Usage, data= [ 0x26 ] 38
(null)
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x87 ] 135
Item(Local ): Usage, data= [ 0x27 ] 39
(null)
Item(Global): Report Count, data= [ 0x23 ] 35
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x88 ] 136
Item(Local ): Usage, data= [ 0x28 ] 40
(null)
Item(Global): Report Count, data= [ 0x22 ] 34
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x89 ] 137
Item(Local ): Usage, data= [ 0x29 ] 41
(null)
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x90 ] 144
Item(Local ): Usage, data= [ 0x30 ] 48
(null)
Item(Global): Report Count, data= [ 0x05 ] 5
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x91 ] 145
Item(Local ): Usage, data= [ 0x31 ] 49
(null)
Item(Global): Report Count, data= [ 0x03 ] 3
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x92 ] 146
Item(Local ): Usage, data= [ 0x32 ] 50
(null)
Item(Global): Report Count, data= [ 0x03 ] 3
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0x93 ] 147
Item(Local ): Usage, data= [ 0x33 ] 51
(null)
Item(Global): Report Count, data= [ 0x0c ] 12
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa0 ] 160
Item(Local ): Usage, data= [ 0x40 ] 64
(null)
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa1 ] 161
Item(Local ): Usage, data= [ 0x41 ] 65
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa2 ] 162
Item(Local ): Usage, data= [ 0x42 ] 66
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa3 ] 163
Item(Local ): Usage, data= [ 0x43 ] 67
(null)
Item(Global): Report Count, data= [ 0x30 ] 48
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa4 ] 164
Item(Local ): Usage, data= [ 0x44 ] 68
(null)
Item(Global): Report Count, data= [ 0x0d ] 13
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa5 ] 165
Item(Local ): Usage, data= [ 0x45 ] 69
(null)
Item(Global): Report Count, data= [ 0x15 ] 21
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa6 ] 166
Item(Local ): Usage, data= [ 0x46 ] 70
(null)
Item(Global): Report Count, data= [ 0x15 ] 21
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xf0 ] 240
Item(Local ): Usage, data= [ 0x47 ] 71
(null)
Item(Global): Report Count, data= [ 0x3f ] 63
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xf1 ] 241
Item(Local ): Usage, data= [ 0x48 ] 72
(null)
Item(Global): Report Count, data= [ 0x3f ] 63
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xf2 ] 242
Item(Local ): Usage, data= [ 0x49 ] 73
(null)
Item(Global): Report Count, data= [ 0x0f ] 15
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa7 ] 167
Item(Local ): Usage, data= [ 0x4a ] 74
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa8 ] 168
Item(Local ): Usage, data= [ 0x4b ] 75
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xa9 ] 169
Item(Local ): Usage, data= [ 0x4c ] 76
(null)
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xaa ] 170
Item(Local ): Usage, data= [ 0x4e ] 78
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xab ] 171
Item(Local ): Usage, data= [ 0x4f ] 79
(null)
Item(Global): Report Count, data= [ 0x39 ] 57
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xac ] 172
Item(Local ): Usage, data= [ 0x50 ] 80
(null)
Item(Global): Report Count, data= [ 0x39 ] 57
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xad ] 173
Item(Local ): Usage, data= [ 0x51 ] 81
(null)
Item(Global): Report Count, data= [ 0x0b ] 11
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xae ] 174
Item(Local ): Usage, data= [ 0x52 ] 82
(null)
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xaf ] 175
Item(Local ): Usage, data= [ 0x53 ] 83
(null)
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xb0 ] 176
Item(Local ): Usage, data= [ 0x54 ] 84
(null)
Item(Global): Report Count, data= [ 0x3f ] 63
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xb1 ] 177
Item(Local ): Usage, data= [ 0x55 ] 85
(null)
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xb2 ] 178
Item(Local ): Usage, data= [ 0x56 ] 86
(null)
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xe0 ] 224
Item(Local ): Usage, data= [ 0x57 ] 87
(null)
Item(Global): Report Count, data= [ 0x02 ] 2
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xb3 ] 179
Item(Local ): Usage, data= [ 0x55 ] 85
(null)
Item(Global): Report Count, data= [ 0x3f ] 63
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Global): Report ID, data= [ 0xb4 ] 180
Item(Local ): Usage, data= [ 0x55 ] 85
(null)
Item(Global): Report Count, data= [ 0x3f ] 63
Item(Main ): Feature, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile
Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Device Status: 0x0000
(Bus Powered)