EDIT: I have tried to take the approach used for GP2040-CE, with the same descriptors and the VID/PID of the Razer controller, but I just get the exact same result, even after adding handling for every possible feature request by the PS4 (other than authentication, of course).
EDIT: I have tried to take the approach used for GP2040-CE, with the same descriptors and the VID/PID of the Razer controller, but I just get the exact same result, even after adding handling for every possible feature request by the PS4 (other than authentication, of course). Also, here's what I see with USBTreeView:
=========================== USB Port2 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-2
Properties : 0x01
IsUserConnectable : yes
PortIsDebugCapable : no
PortHasMultiCompanions : no
PortConnectorIsTypeC : no
ConnectionIndex : 0x02 (Port 2)
CompanionIndex : 0
CompanionHubSymLnk : USB#ROOT_HUB30#5&2ddeeb85&0&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
CompanionPortNumber : 0x06 (Port 6)
-> CompanionPortChain : 1-6
========================== Summary =========================
Vendor ID : 0x1532 (Razer (Asia-Pacific) Pte Ltd.)
Product ID : 0x0401
Manufacturer String : "Unknown"
Product String : "Arduino Leonardo"
Serial : ---
USB Version : 2.0 (but 12 Mbit/s FullSpeed only)
Port maximum Speed : High-Speed (Companion Port 1-6 is doing the SuperSpeed)
Device maximum Speed : Full-Speed
Device Connection Speed : Full-Speed
Self powered : no
Demanded Current : 500 mA
Used Endpoints : 3
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : USB Input Device
Device Path 1 : \\?\USB#VID_1532&PID_0401#6&21a47d&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Device Path 2 : \\?\USB#VID_1532&PID_0401#6&21a47d&0&2#{0c320ff7-bd9b-42b6-bdaf-49feb9c91649}
Kernel Name : \Device\USBPDO-6
Device ID : USB\VID_1532&PID_0401\6&21A47D&0&2
Hardware IDs : USB\VID_1532&PID_0401&REV_0100 USB\VID_1532&PID_0401
Driver KeyName : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}\0010 (GUID_DEVCLASS_HIDCLASS)
Driver : \SystemRoot\System32\drivers\hidusb.sys (Version: 10.0.26100.5074 Date: 2025-09-09 Company: Microsoft Corporation)
Driver Inf : C:\WINDOWS\inf\input.inf
Legacy BusType : PNPBus
Class : HIDClass
Class GUID : {745a17a0-74d3-11d0-b6fe-00a0c90f57da} (GUID_DEVCLASS_HIDCLASS)
Service : HidUsb
Enumerator : USB
Location Info : Port_#0002.Hub_#0002
Address : 2
Location IDs : PCIROOT(0)#PCI(0801)#PCI(0004)#USBROOT(0)#USB(2), ACPI(_SB_)#ACPI(PCI0)#ACPI(GP17)#ACPI(XHC1)#ACPI(RHUB)#ACPI(PRT2)
Container ID : {daf9550e-78dd-11f0-807d-ac50dea9a6f2}
Manufacturer Info : (Standard system devices)
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
First Install Date : 2025-08-15 15:09:11
Last Arrival Date : 2025-10-03 23:40:38
Bus Relations : HID\VID_1532&PID_0401&Col01\7&2d58bc48&0&0000, HID\VID_1532&PID_0401&Col02\7&2d58bc48&0&0001
SelectiveSuspendEnabled : 0
EnhancedPowerMgmtEnabled : 1
Power State : D0 (supported: D0, D3, wake from D0)
+++++++++++++++++ Registry USB Flags +++++++++++++++++
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\153204010100
osvc : REG_BINARY 00 00
---------------- Connection Information ---------------
Connection Index : 0x02 (Port 2)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01 (Configuration 1)
Device Address : 0x01 (1)
Is Hub : 0x00 (no)
Device Bus Speed : 0x01 (Full-Speed)
Number of open Pipes : 0x02 (2 pipes to data endpoints)
Pipe[0] : EndpointID=1 Direction=IN ScheduleOffset=0 Type=Interrupt wMaxPacketSize=0x40 bInterval=5 -> 718 Bits/ms = 89750 Bytes/s
Pipe[1] : EndpointID=3 Direction=OUT ScheduleOffset=0 Type=Interrupt wMaxPacketSize=0x40 bInterval=5 -> 718 Bits/ms = 89750 Bytes/s
Data (HexDump) : 02 00 00 00 12 01 00 02 00 00 00 40 32 15 01 04 ...........@2...
00 01 01 02 00 01 01 01 00 01 00 02 00 00 00 01 ................
00 00 00 07 05 81 03 40 00 05 00 00 00 00 07 05 .......@........
03 03 40 00 05 00 00 00 00 ..@......
--------------- Connection Information V2 -------------
Connection Index : 0x02 (2)
Length : 0x10 (16 bytes)
SupportedUsbProtocols : 0x03
Usb110 : 1 (yes, port supports USB 1.1)
Usb200 : 1 (yes, port supports USB 2.0)
Usb300 : 0 (no, port not supports USB 3.0) -> but Companion Port 1-6 does
ReservedMBZ : 0x00
Flags : 0x00
DevIsOpAtSsOrHigher : 0 (Device is not operating at SuperSpeed or higher)
DevIsSsCapOrHigher : 0 (Device is not SuperSpeed capable or higher)
DevIsOpAtSsPlusOrHigher : 0 (Device is not operating at SuperSpeedPlus or higher)
DevIsSsPlusCapOrHigher : 0 (Device is not SuperSpeedPlus capable or higher)
ReservedMBZ : 0x00
Data (HexDump) : 02 00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 ................
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x200 (USB Version 2.0) -> but device is Full-Speed only
bDeviceClass : 0x00 (defined by the interface descriptors)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x1532 (Razer (Asia-Pacific) Pte Ltd.)
idProduct : 0x0401
bcdDevice : 0x0100
iManufacturer : 0x01 (String Descriptor 1)
Language 0x0409 : "Unknown"
iProduct : 0x02 (String Descriptor 2)
Language 0x0409 : "Arduino Leonardo"
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
Data (HexDump) : 12 01 00 02 00 00 00 40 32 15 01 04 00 01 01 02 .......@2.......
00 01 ..
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0029 (41 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0xFA (500 mA)
Data (HexDump) : 09 02 29 00 01 01 00 80 FA 09 04 00 00 02 03 00 ..).............
00 00 09 21 11 01 00 01 22 E1 01 07 05 81 03 40 ...!...."......@
00 05 07 05 03 03 40 00 05 ......@..
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00 (Interface 0)
bAlternateSetting : 0x00
bNumEndpoints : 0x02 (2 Endpoints)
bInterfaceClass : 0x03 (HID - Human Interface Device)
bInterfaceSubClass : 0x00 (None)
bInterfaceProtocol : 0x00 (None)
iInterface : 0x00 (No String Descriptor)
Data (HexDump) : 09 04 00 00 02 03 00 00 00 .........
------------------- HID Descriptor --------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x21 (HID Descriptor)
bcdHID : 0x0111 (HID Version 1.11)
bCountryCode : 0x00 (00 = not localized)
bNumDescriptors : 0x01
Data (HexDump) : 09 21 11 01 00 01 22 E1 01 .!...."..
Descriptor 1:
bDescriptorType : 0x22 (Class=Report)
wDescriptorLength : 0x01E1 (481 bytes)
05 01 Usage Page (Generic Desktop Controls)
09 05 Usage (Gamepad)
A1 01 Collection (Application)
85 01 Report ID (0x01)
09 30 Usage (Direction-X)
09 31 Usage (Direction-Y)
09 32 Usage (Direction-Z)
09 35 Usage (Rotate-Z)
15 00 Logical Minimum (0)
26 FF 00 Logical Maximum (255)
75 08 Report Size (8)
95 04 Report Count (4)
81 02 Input (Var)
09 39 Usage (Hat Switch)
15 00 Logical Minimum (0)
25 07 Logical Maximum (7)
35 00 Physical Minimum (0)
46 3B 01 Physical Maximum (315)
65 14 Unit (0x14)
75 04 Report Size (4)
95 01 Report Count (1)
81 42 Input (Var, NullState)
65 00 Unit (0x00)
05 09 Usage Page (Buttons)
19 01 Usage Minimum (1)
29 0E Usage Maximum (14)
15 00 Logical Minimum (0)
25 01 Logical Maximum (1)
75 01 Report Size (1)
95 0E Report Count (14)
81 02 Input (Var)
06 00 FF Usage Page (Vendor Defined)
09 20 Usage (unk)
75 06 Report Size (6)
95 01 Report Count (1)
81 02 Input (Var)
05 01 Usage Page (Generic Desktop Controls)
09 33 Usage (Rotate-X)
09 34 Usage (Rotate-Y)
15 00 Logical Minimum (0)
26 FF 00 Logical Maximum (255)
75 08 Report Size (8)
95 02 Report Count (2)
81 02 Input (Var)
06 00 FF Usage Page (Vendor Defined)
09 21 Usage (unk)
95 36 Report Count (54)
81 02 Input (Var)
85 05 Report ID (0x05)
09 22 Usage (unk)
95 1F Report Count (31)
91 02 Output (Var)
85 03 Report ID (0x03)
0A 21 27 Usage (unk)
95 2F Report Count (47)
B1 02 Feature (Var)
85 02 Report ID (0x02)
09 24 Usage (unk)
95 24 Report Count (36)
B1 02 Feature (Var)
85 08 Report ID (0x08)
09 25 Usage (unk)
95 03 Report Count (3)
B1 02 Feature (Var)
85 10 Report ID (0x10)
09 26 Usage (unk)
95 04 Report Count (4)
B1 02 Feature (Var)
85 11 Report ID (0x11)
09 27 Usage (unk)
95 02 Report Count (2)
B1 02 Feature (Var)
85 12 Report ID (0x12)
06 02 FF Usage Page (Vendor Defined)
09 21 Usage (unk)
95 0F Report Count (15)
B1 02 Feature (Var)
85 13 Report ID (0x13)
09 22 Usage (unk)
95 16 Report Count (22)
B1 02 Feature (Var)
85 14 Report ID (0x14)
06 05 FF Usage Page (Vendor Defined)
09 20 Usage (unk)
95 10 Report Count (16)
B1 02 Feature (Var)
85 15 Report ID (0x15)
09 21 Usage (unk)
95 2C Report Count (44)
B1 02 Feature (Var)
06 80 FF Usage Page (Vendor Defined)
85 80 Report ID (0x80)
09 20 Usage (unk)
95 06 Report Count (6)
B1 02 Feature (Var)
85 81 Report ID (0x81)
09 21 Usage (unk)
95 06 Report Count (6)
B1 02 Feature (Var)
85 82 Report ID (0x82)
09 22 Usage (unk)
95 05 Report Count (5)
B1 02 Feature (Var)
85 83 Report ID (0x83)
09 23 Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 84 Report ID (0x84)
09 24 Usage (unk)
95 04 Report Count (4)
B1 02 Feature (Var)
85 85 Report ID (0x85)
09 25 Usage (unk)
95 06 Report Count (6)
B1 02 Feature (Var)
85 86 Report ID (0x86)
09 26 Usage (unk)
95 06 Report Count (6)
B1 02 Feature (Var)
85 87 Report ID (0x87)
09 27 Usage (unk)
95 23 Report Count (35)
B1 02 Feature (Var)
85 88 Report ID (0x88)
09 28 Usage (unk)
95 22 Report Count (34)
B1 02 Feature (Var)
85 89 Report ID (0x89)
09 29 Usage (unk)
95 02 Report Count (2)
B1 02 Feature (Var)
85 90 Report ID (0x90)
09 30 Usage (unk)
95 05 Report Count (5)
B1 02 Feature (Var)
85 91 Report ID (0x91)
09 31 Usage (unk)
95 03 Report Count (3)
B1 02 Feature (Var)
85 92 Report ID (0x92)
09 32 Usage (unk)
95 03 Report Count (3)
B1 02 Feature (Var)
85 93 Report ID (0x93)
09 33 Usage (unk)
95 0C Report Count (12)
B1 02 Feature (Var)
85 A0 Report ID (0xA0)
09 40 Usage (unk)
95 06 Report Count (6)
B1 02 Feature (Var)
85 A1 Report ID (0xA1)
09 41 Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 A2 Report ID (0xA2)
09 42 Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 A3 Report ID (0xA3)
09 43 Usage (unk)
95 30 Report Count (48)
B1 02 Feature (Var)
85 A4 Report ID (0xA4)
09 44 Usage (unk)
95 0D Report Count (13)
B1 02 Feature (Var)
85 A5 Report ID (0xA5)
09 45 Usage (unk)
95 15 Report Count (21)
B1 02 Feature (Var)
85 A6 Report ID (0xA6)
09 46 Usage (unk)
95 15 Report Count (21)
B1 02 Feature (Var)
85 A7 Report ID (0xA7)
09 4A Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 A8 Report ID (0xA8)
09 4B Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 A9 Report ID (0xA9)
09 4C Usage (unk)
95 08 Report Count (8)
B1 02 Feature (Var)
85 AA Report ID (0xAA)
09 4E Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 AB Report ID (0xAB)
09 4F Usage (unk)
95 39 Report Count (57)
B1 02 Feature (Var)
85 AC Report ID (0xAC)
09 50 Usage (unk)
95 39 Report Count (57)
B1 02 Feature (Var)
85 AD Report ID (0xAD)
09 51 Usage (unk)
95 0B Report Count (11)
B1 02 Feature (Var)
85 AE Report ID (0xAE)
09 52 Usage (unk)
95 01 Report Count (1)
B1 02 Feature (Var)
85 AF Report ID (0xAF)
09 53 Usage (unk)
95 02 Report Count (2)
B1 02 Feature (Var)
85 B0 Report ID (0xB0)
09 54 Usage (unk)
95 3F Report Count (63)
B1 02 Feature (Var)
C0 End Collection
06 F0 FF Usage Page (Vendor Defined)
09 40 Usage (unk)
A1 01 Collection (Application)
85 F0 Report ID (0xF0)
09 47 Usage (unk)
95 3F Report Count (63)
B1 02 Feature (Var)
85 F1 Report ID (0xF1)
09 48 Usage (unk)
95 3F Report Count (63)
B1 02 Feature (Var)
85 F2 Report ID (0xF2)
09 49 Usage (unk)
95 0F Report Count (15)
B1 02 Feature (Var)
85 F3 Report ID (0xF3)
0A 01 47 Usage (unk)
95 07 Report Count (7)
B1 02 Feature (Var)
C0 End Collection
Data (HexDump) : 05 01 09 05 A1 01 85 01 09 30 09 31 09 32 09 35 .........0.1.2.5
15 00 26 FF 00 75 08 95 04 81 02 09 39 15 00 25 ..&..u......9..%
07 35 00 46 3B 01 65 14 75 04 95 01 81 42 65 00 .5.F;.e.u....Be.
05 09 19 01 29 0E 15 00 25 01 75 01 95 0E 81 02 ....)...%.u.....
06 00 FF 09 20 75 06 95 01 81 02 05 01 09 33 09 .... u........3.
34 15 00 26 FF 00 75 08 95 02 81 02 06 00 FF 09 4..&..u.........
21 95 36 81 02 85 05 09 22 95 1F 91 02 85 03 0A !.6.....".......
21 27 95 2F B1 02 85 02 09 24 95 24 B1 02 85 08 !'./.....$.$....
09 25 95 03 B1 02 85 10 09 26 95 04 B1 02 85 11 .%.......&......
09 27 95 02 B1 02 85 12 06 02 FF 09 21 95 0F B1 .'..........!...
02 85 13 09 22 95 16 B1 02 85 14 06 05 FF 09 20 ...."..........
95 10 B1 02 85 15 09 21 95 2C B1 02 06 80 FF 85 .......!.,......
80 09 20 95 06 B1 02 85 81 09 21 95 06 B1 02 85 .. .......!.....
82 09 22 95 05 B1 02 85 83 09 23 95 01 B1 02 85 ..".......#.....
84 09 24 95 04 B1 02 85 85 09 25 95 06 B1 02 85 ..$.......%.....
86 09 26 95 06 B1 02 85 87 09 27 95 23 B1 02 85 ..&.......'.#...
88 09 28 95 22 B1 02 85 89 09 29 95 02 B1 02 85 ..(.".....).....
90 09 30 95 05 B1 02 85 91 09 31 95 03 B1 02 85 ..0.......1.....
92 09 32 95 03 B1 02 85 93 09 33 95 0C B1 02 85 ..2.......3.....
A0 09 40 95 06 B1 02 85 A1 09 41 95 01 B1 02 85 [email protected].....
A2 09 42 95 01 B1 02 85 A3 09 43 95 30 B1 02 85 ..B.......C.0...
A4 09 44 95 0D B1 02 85 A5 09 45 95 15 B1 02 85 ..D.......E.....
A6 09 46 95 15 B1 02 85 A7 09 4A 95 01 B1 02 85 ..F.......J.....
A8 09 4B 95 01 B1 02 85 A9 09 4C 95 08 B1 02 85 ..K.......L.....
AA 09 4E 95 01 B1 02 85 AB 09 4F 95 39 B1 02 85 ..N.......O.9...
AC 09 50 95 39 B1 02 85 AD 09 51 95 0B B1 02 85 ..P.9.....Q.....
AE 09 52 95 01 B1 02 85 AF 09 53 95 02 B1 02 85 ..R.......S.....
B0 09 54 95 3F B1 02 C0 06 F0 FF 09 40 A1 01 85 ..T.?.......@...
F0 09 47 95 3F B1 02 85 F1 09 48 95 3F B1 02 85 ..G.?.....H.?...
F2 09 49 95 0F B1 02 85 F3 0A 01 47 95 07 B1 02 ..I........G....
C0 .
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x81 (Direction=IN EndpointID=1)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0040 (64 bytes)
bInterval : 0x05 (5 ms)
Data (HexDump) : 07 05 81 03 40 00 05 ....@..
----------------- Endpoint Descriptor -----------------
bLength : 0x07 (7 bytes)
bDescriptorType : 0x05 (Endpoint Descriptor)
bEndpointAddress : 0x03 (Direction=OUT EndpointID=3)
bmAttributes : 0x03 (TransferType=Interrupt)
wMaxPacketSize : 0x0040 (64 bytes)
bInterval : 0x05 (5 ms)
Data (HexDump) : 07 05 03 03 40 00 05 ....@..
----------------- Device Qualifier Descriptor -----------------
Error : request skipped because low-speed device
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Data (HexDump) : 04 03 09 04 ....
------ String Descriptor 1 ------
bLength : 0x10 (16 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Unknown"
Data (HexDump) : 10 03 55 00 6E 00 6B 00 6E 00 6F 00 77 00 6E 00 ..U.n.k.n.o.w.n.
------ String Descriptor 2 ------
bLength : 0x22 (34 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language 0x0409 : "Arduino Leonardo"
Data (HexDump) : 22 03 41 00 72 00 64 00 75 00 69 00 6E 00 6F 00 ".A.r.d.u.i.n.o.
20 00 4C 00 65 00 6F 00 6E 00 61 00 72 00 64 00 .L.e.o.n.a.r.d.
6F 00 o.