Editing DS4-USB

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 3: Line 3:
 
'''Source:''' https://gist.github.com/johndrinkwater/7708901
 
'''Source:''' https://gist.github.com/johndrinkwater/7708901
  
[[File:DUALSHOCK4 03.jpg|thumbnail|right]]
+
[[File:DUALSHOCK4 03.jpg|thumbnail|right|none]]
  
 
== USB ==
 
== USB ==
Line 175: Line 175:
 
| 1 || bDescriptorType || 1 || 0x05 || (= 5)
 
| 1 || bDescriptorType || 1 || 0x05 || (= 5)
 
|-
 
|-
| 2 || bEndpointAddress || 1 || 0x84 || IN<--(1 000 0100)-->4 (PS3 Controller: 0x81)
+
| 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 223:
 
| 1 || bDescriptorType || 1 || 0x05 || (= 5)
 
| 1 || bDescriptorType || 1 || 0x05 || (= 5)
 
|-
 
|-
| 2 || bEndpointAddress || 1 || 0x03 || OUT<--(0 000 0011)-->3 (PS3 Controller: 0x02)
+
| 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 234:
  
 
=== HID Report Descriptor ===
 
=== HID Report Descriptor ===
 +
 
[http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf HID Usage Tables 1.12 (p.26)]
 
[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 315:
 
|0x15||0x00|| - ||Logical Minimum (0)||
 
|0x15||0x00|| - ||Logical Minimum (0)||
 
|-
 
|-
|0x25||0x7F|| - ||Logical Maximum (127)||Note: REPORT_SIZE (6) is too small for LOGICAL_MAXIMUM (127) which needs 7 bits
+
|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 704:
 
|-
 
|-
 
|}
 
|}
 +
 +
</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 799: Line 804:
 
| 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 829:
 
|colspan="8"|{{padr2}} Trigger
 
|colspan="8"|{{padr2}} Trigger
 
|-
 
|-
|[10 - 11]
+
|[10]
|colspan="8"|Seems to be a timestamp. A common increment value between two reports is 188 (at full rate the report period is 1.25ms). This timestamp is used by the PS4 to process acceleration and gyroscope data.
+
|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 839:
 
|-
 
|-
 
|[13 - 14]
 
|[13 - 14]
|colspan="8"|Gyro X: angular velocity measures (follows right-hand-rule)
+
|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 (signed): acceleration (positive: right)
+
|colspan="8"|Possibly Accel X: acceleration measures
 
|-
 
|-
 
|[21 - 22]
 
|[21 - 22]
|colspan="8"|Accel Y (signed): acceleration (positive: up)
+
|colspan="8"|Possibly Accel Y
 
|-
 
|-
 
|[23 - 24]
 
|[23 - 24]
|colspan="8"|Accel Z (signed): acceleration (positive: towards player)
+
|colspan="8"|Possibly Accel Z
 
|-
 
|-
 
|[25 - 29]
 
|[25 - 29]
Line 876: Line 884:
 
|-
 
|-
 
|[35]
 
|[35]
|0 if finger №1 is down.
+
|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="7"|T-PAD: tracking numbers, unique to each finger (№1) down, so for each lift and repress, it gets a newly incremented figure.
 
 
|-
 
|-
 
|[36 - 38]
 
|[36 - 38]
Line 890: Line 897:
 
|-
 
|-
 
|[39]
 
|[39]
|0 if finger №2 is down.
+
|colspan="8"|T-PAD: tracking numbers, unique to each finger (№2) down.
|colspan="7"|T-PAD: tracking numbers, unique to each finger (№2) down.
 
 
|-
 
|-
 
|[40 - 42]
 
|[40 - 42]

Please note that all contributions to PS4 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS4 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)