Editing DS4-USB
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 2: | Line 2: | ||
'''Source:''' https://gist.github.com/johndrinkwater/7708901 | '''Source:''' https://gist.github.com/johndrinkwater/7708901 | ||
== USB == | == USB == | ||
Audio does not carry through {{G|USB}} in the case of a [[DualShock 4|Dual Shock 4]]. | Audio does not carry through {{G|USB}} in the case of a [[DualShock 4|Dual Shock 4]]. | ||
The reports arrive | The reports arrive once every 4ms. | ||
=== Device Descriptor === | === Device Descriptor === | ||
Line 175: | Line 171: | ||
| 1 || bDescriptorType || 1 || 0x05 || (= 5) | | 1 || bDescriptorType || 1 || 0x05 || (= 5) | ||
|- | |- | ||
| 2 || bEndpointAddress || 1 || 0x84 || IN<--( | | 2 || bEndpointAddress || 1 || 0x84 || IN<--(10 00 0100)-->4 (PS3 Controller: 0x81) | ||
<small> | <small> | ||
The address of this endpoint within the device: | The address of this endpoint within the device: | ||
Line 223: | Line 219: | ||
| 1 || bDescriptorType || 1 || 0x05 || (= 5) | | 1 || bDescriptorType || 1 || 0x05 || (= 5) | ||
|- | |- | ||
| 2 || bEndpointAddress || 1 || 0x03 || OUT<--( | | 2 || bEndpointAddress || 1 || 0x03 || OUT<--(00 00 0011)-->3 (PS3 Controller: 0x02) | ||
|- | |- | ||
| 3 || bmAttributes || 1 || 0x03 || Interrupt | | 3 || bmAttributes || 1 || 0x03 || Interrupt | ||
Line 234: | Line 230: | ||
=== HID Report Descriptor === | === HID Report Descriptor === | ||
[ | |||
[http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf HID Usage Tables 1.12 (p.26)] | |||
<div style="height:650px; width:700px; overflow:auto"> | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
Line 312: | Line 311: | ||
|0x15||0x00|| - ||Logical Minimum (0)|| | |0x15||0x00|| - ||Logical Minimum (0)|| | ||
|- | |- | ||
|0x25||0x7F|| - ||Logical Maximum (127)|| | |0x25||0x7F|| - ||Logical Maximum (127)|| | ||
|- | |- | ||
|0x81||0x02|| - ||Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)|| send (byte 07: msb 6 bits) | |0x81||0x02|| - ||Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)|| send (byte 07: msb 6 bits) | ||
Line 701: | Line 700: | ||
|- | |- | ||
|} | |} | ||
</div><br /> | |||
<small>Total size of the Report descriptor is 0x01D3 (467)</small> | <small>Total size of the Report descriptor is 0x01D3 (467)</small> | ||
Line 774: | Line 775: | ||
|- | |- | ||
|[1] | |[1] | ||
|colspan="8"|{{padl}} | |colspan="8"|{{padl}} X axis (0 = {{padll}} left) | ||
|- | |- | ||
|[2] | |[2] | ||
|colspan="8"|{{padl}} | |colspan="8"|{{padl}} Y axis (0 = {{padlu}} up) | ||
|- | |- | ||
|[3] | |[3] | ||
|colspan="8"|{{padr}} Right Stick axis X | |colspan="8"|{{padr}} Right Stick axis X | ||
|- | |- | ||
|[4] | |[4] | ||
|colspan="8"|{{padr}} Right Stick axis Y | |colspan="8"|{{padr}} Right Stick axis Y | ||
|- | |- | ||
|[5] | |[5] | ||
Line 799: | Line 800: | ||
| 7=NW || 6=W || 5=SW || 4=S || 3=SE || 2=E || 1=NE || 0=N | | 7=NW || 6=W || 5=SW || 4=S || 3=SE || 2=E || 1=NE || 0=N | ||
|- | |- | ||
| '''↑←''' || '''←''' || '''↓←''' || '''↓''' || '''↓→''' || ''→ '' || ''' | | '''↑←''' || '''←''' || '''↓←''' || '''↓''' || '''↓→''' || '''→''' || '''↑←''' || '''↑''' | ||
|- | |- | ||
|} | |} | ||
Line 824: | Line 825: | ||
|colspan="8"|{{padr2}} Trigger | |colspan="8"|{{padr2}} Trigger | ||
|- | |- | ||
|[10 - 11] | |[10] | ||
|colspan="8"| | |colspan="8"|Unknown, seems to count downwards, non-random pattern | ||
|- | |||
|[11] | |||
|colspan="8"|Unknown, seems to count upwards by 3, but by 2 when [10] underflows | |||
|- | |- | ||
|[12] | |[12] | ||
Line 831: | Line 835: | ||
|- | |- | ||
|[13 - 14] | |[13 - 14] | ||
|colspan="8"|Gyro X: | |colspan="8"|Possibly Gyro X (seems to be signed): orientation measures | ||
|- | |- | ||
|[15 - 16] | |[15 - 16] | ||
|colspan="8"|Gyro Y | |colspan="8"|Possibly Gyro Y | ||
|- | |- | ||
|[17 - 18] | |[17 - 18] | ||
|colspan="8"|Gyro Z | |colspan="8"|Possibly Gyro Z | ||
|- | |- | ||
|[19 - 20] | |[19 - 20] | ||
|colspan="8"|Accel X | |colspan="8"|Possibly Accel X: acceleration measures | ||
|- | |- | ||
|[21 - 22] | |[21 - 22] | ||
|colspan="8"|Accel Y | |colspan="8"|Possibly Accel Y | ||
|- | |- | ||
|[23 - 24] | |[23 - 24] | ||
|colspan="8"|Accel Z | |colspan="8"|Possibly Accel Z | ||
|- | |- | ||
|[25 - 29] | |[25 - 29] | ||
Line 876: | Line 880: | ||
|- | |- | ||
|[35] | |[35] | ||
|colspan="8"|T-PAD: tracking numbers, unique to each finger (№1) down, so for each lift and repress, it gets a newly incremented figure. | |||
|colspan=" | |||
|- | |- | ||
|[36 - 38] | |[36 - 38] | ||
Line 890: | Line 893: | ||
|- | |- | ||
|[39] | |[39] | ||
|colspan="8"|T-PAD: tracking numbers, unique to each finger (№2) down. | |||
|colspan=" | |||
|- | |- | ||
|[40 - 42] | |[40 - 42] |