Sony DualShock 4

VID:PID 0x054c:0x05c4

Vendor sony

Interfaces

IDClassEP INEP OUT
0hid

Report: usb (64 bytes, interface 0)

Match: byte[0] = 0x01

Fields

NameOffsetTypeTransform
touch1_contact37u8
accel_x20i16le
left_x1u8scale(-32768, 32767)
touch0_contact33u8
lt9u8
accel_y22i16le
accel_z24i16le
gyro_z18i16le
gyro_x14i16le
battery_levelbits[30,0,4]unsigned
right_x3u8scale(-32768, 32767)
rt10u8
gyro_y16i16le
left_y2u8scale(-32768, 32767), negate
right_y4u8scale(-32768, 32767), negate

Button Map

Source: offset 5, size 3 byte(s)

ButtonBit Index
LT10
RT11
B6
LS14
RS15
X4
LB8
RB9
A5
Select12
Home16
Start13
Y7
TouchPad17

Report: bt (78 bytes, interface 0)

Match: byte[0] = 0x11

Fields

NameOffsetTypeTransform
touch1_contact39u8
accel_x22i16le
left_x3u8scale(-32768, 32767)
touch0_contact35u8
lt11u8
accel_y24i16le
accel_z26i16le
gyro_z20i16le
gyro_x16i16le
battery_levelbits[32,0,4]unsigned
right_x5u8scale(-32768, 32767)
rt12u8
gyro_y18i16le
left_y4u8scale(-32768, 32767), negate
right_y6u8scale(-32768, 32767), negate

Button Map

Source: offset 7, size 3 byte(s)

ButtonBit Index
LT10
RT11
B6
LS14
RS15
X4
LB8
RB9
A5
Select12
Home16
Start13
Y7
TouchPad17

Commands

NameInterfaceTemplate
led005 ff 00 00 00 00 {r:u8} {g:u8} {b:u8} 00 00 00 00 00 00 00 ...
rumble005 ff 00 00 {weak:u8} {strong:u8} 00 00 00 00 00 00 00 00 00...

Output Capabilities

uinput device name: Sony DualShock 4 | VID 0x054c | PID 0x05c4

Axes

FieldCodeMinMaxFuzzFlat
ltABS_Z025500
left_xABS_X-327683276716128
rtABS_RZ025500
right_xABS_RX-327683276716128
left_yABS_Y-327683276716128
right_yABS_RY-327683276716128

Buttons

ButtonEvent Code
LSBTN_THUMBL
RSBTN_THUMBR
XBTN_WEST
BBTN_EAST
LBBTN_TL
RBBTN_TR
ABTN_SOUTH
SelectBTN_SELECT
HomeBTN_MODE
StartBTN_START
YBTN_NORTH
TouchPadBTN_TOUCH

Force feedback: type=rumble, max_effects=16