Rumble and wireless assistance

USB Joystick driver for RISC OS 5
grannyg
Posts: 27
Joined: Fri Dec 13, 2013

Re: Rumble and wireless assistance

Post by grannyg »

Success with 0.25. All the buttons/sticks/dpad responded in the !Configure plug-in.

The test rumble commands weren't 'ready to rumble'.

Code: Select all

*usbjoystick_debug 0
Joystick slot 0 (Sony - PLAYSTATION(R)3 Controller)
  Path                    : devices#interface=0;endpoint=1;nopad;noblock:USB7
  File handle             : 248
  Data stream open        : Yes
  Local USB device name   : USB7
  Interface               : 0
  Endpoint                : 1
  Device manufacturer     : Sony
  Device product name     : PLAYSTATION(R)3 Controller
  Device serial number    : 
  Driver                  : PlayStation 3 controller
  Output transport        : Control pipe (HID output report)
  Capabilities            : Rumble
  Report descriptor       : From the device
  Report id               : 1
  Report data offset      : 0
  Data validator          : No
  Start-up routine        : Yes
  Auto-inverted axis types: 0
  USB vendor id           : 0x054c
  USB product id          : 0x0268
  USB device id           : 0x0100
  Buffer handle           : 256
  Buffer internal id      : 132
  Buffer service routine  : 0xfc1fca98
  Buffer workspace        : 0x20004054
  DeviceFS handle         : 0x20857c74
  Report data length      : 48
  Upcalls                 : 78479 (delta: 78479)
  Good reads              : 78479 (delta: 78479)
  Bad reads               : 0 (delta: 0)
  Raw report data         : 01 00 00 00 00 00 7f 84 7e 7d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 ee 10 00 00 00 00 06 7f 77 01 81 01 d6 01 f7 01 b3 00 
  Number of axes          : 4
  Number of buttons       : 19
  HAT switch              : No
  DPAD                    : No
  Axes:
  Axis 00     X : Slope 8 =    1 (mul), Slope 16 =  257 (mul), Mouse factor =    1, SP =     97:   159, Invert = off, ReportId = 1
  Axis 01     Y : Slope 8 =    1 (mul), Slope 16 =  257 (mul), Mouse factor =    1, SP =     97:   159, Invert = off, ReportId = 1
  Axis 02     Z : Slope 8 =    1 (mul), Slope 16 =  257 (mul), Mouse factor =    1, SP =     97:   159, Invert = off, ReportId = 1
  Axis 03    RZ : Slope 8 =    1 (mul), Slope 16 =  257 (mul), Mouse factor =    1, SP =     97:   159, Invert = off, ReportId = 1
  Button ReportIds : 00=1 01=1 02=1 03=1 04=1 05=1 06=1 07=1 08=1 09=1 10=1 11=1 12=1 13=1 14=1 15=1 16=1 17=1 18=1 
grannyg
Posts: 27
Joined: Fri Dec 13, 2013

Re: Rumble and wireless assistance

Post by grannyg »

With 0.25 the test rumble commands did cause a 'right royal rumble' with a PS4 controller.
richw
Posts: 189
Joined: Sat Sep 14, 2013

Re: Rumble and wireless assistance

Post by richw »

Nice! Thanks for trying.

So the PS3 works as a standard controller, but even though it flags as 'rumble capable', it doesn't rumble? If you can, the reporter output would be interesting for that. Just run Reporter, then

Code: Select all

RMReInit USBJoystick
(or unplug/re-plug the USB device), and you should see all sorts of nonsense appear in Reporter. Try the

Code: Select all

USBJoystick_Rumble
command out too, and more stuff should appear in Reporter. I'm interested in all of it.

So I guess the PS4 one works completely? The buttons/sticks/DPAD? And it actually rumbles?! :shock: If you can, it would be interesting to see the same sort of Reporter output for that one, just to examine the differences between the devices.
grannyg
Posts: 27
Joined: Fri Dec 13, 2013

Re: Rumble and wireless assistance

Post by grannyg »

This is for PS3,

Code: Select all

USBJoystick: [6021.33] joy_check_device: (usb service call) +++++++++++++++++++++++++++++++++++
USBJoystick: [6021.33] clock: joy_check_device: Fri,23 Oct 2026.14:53:29
USBJoystick: [6021.33] joy_check_device: Checking device name 'USB19' (sclen 93, descoff 32, class 00, subclass 00, protocol 00)
USBJoystick: [6021.33] joy_check_device: Getting USB descriptors
USBJoystick: [6021.33] usb_get_descriptor_list: device 'USB19'
USBJoystick: [6021.33] joy_check_device: Parsing USB descriptors
USBJoystick: [6021.33] joy_check_device: Device descriptor: Length 18, Type 1, Configurations 1, csDeviceClass 0x0
USBJoystick: [6021.33] joy_check_device: Device descriptor: iManufacturer 1, iProduct 2, iSerialNumber 0
USBJoystick: [6021.33] joy_check_device: Device descriptor: Vendor 0x054c, Product 0x0268, Device 0x0100
USBJoystick: [6021.33] joy_check_device: Configuration descriptor: Length 9, Type 2, TotalLength 41, NumInterfaces 1 
USBJoystick: [6021.33] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 0, InterfaceClass 3 (3 is HID), iInterface 0, csInterfaceClass 0x30000
USBJoystick: [6021.33] joy_check_device: Other descriptor: type is 33 - not Device/Config/Interface/Endpoint
USBJoystick: [6021.33] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x30000
USBJoystick: [6021.33] joy_check_device: InterfaceClass 0x3, InterfaceSubClass 0x0, InterfaceProtocol 0, Vendor 0x054c, Product 0x0268
USBJoystick: [6021.33] joy_check_device: Supported device: PlayStation 3 controller
USBJoystick: [6021.33] joy_check_device: Assume we are looking at a HID device descriptor
USBJoystick: [6021.33] joy_check_device: Getting HID report descriptor from device...
USBJoystick: [6021.33] get_report_descriptor: HID device descriptor: Length 9, DescriptorType 33, HID 273, country 0, NumDescriptors 1, ReportDescType 34, ReportDescLength 148
USBJoystick: [6021.33] get_report_descriptor: Calculated ReportDescriptorType 32, ReportDescriptorId 2
USBJoystick: [6021.33] get_report_descriptor: Getting HID report descriptor
USBJoystick: [6021.33] usb_get_descriptor: dev 'USB19' wValue 0x2200, wIndex 0, wLength 148
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 148 bytes
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0000: 05 01 09 04 a1 01 a1 02 85 01 75 08 95 01 15 00
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0010: 26 ff 00 81 03 75 01 95 13 15 00 25 01 35 00 45
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0020: 01 05 09 19 01 29 13 81 02 75 01 95 0d 06 00 ff
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0030: 81 03 15 00 26 ff 00 05 01 09 01 a1 00 75 08 95
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0040: 04 35 00 46 ff 00 09 30 09 31 09 32 09 35 81 02
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0050: c0 05 01 75 08 95 27 09 01 81 02 75 08 95 30 09
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0060: 01 91 02 75 08 95 30 09 01 b1 02 c0 a1 02 85 02
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0070: 75 08 95 30 09 01 b1 02 c0 a1 02 85 ee 75 08 95
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0080: 30 09 01 b1 02 c0 a1 02 85 ef 75 08 95 30 09 01
USBJoystick: [6021.34] get_report_descriptor: report descriptor: 0090: b1 02 c0 c0
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Will use joystick number 0 (next available) for this HID parse
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Shared report descriptor 'rd' (size 148) with libusbhid
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: HID report descriptors use a reportid, so switching from 0 to 1
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Got hid report size 48 for reportid 1, has_report_id is 1
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] HID parser:   reportid 1, usage is unsupported (not axis/dpad/hat, code 0x1)
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Parse completed - freeing libusbhid report descriptor memory
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Analysing parse output to build axes info
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Axis 0, item_usage is 48, type is 5, name is X
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Axis 1, item_usage is 49, type is 6, name is Y
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Axis 2, item_usage is 50, type is 7, name is Z
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Axis 3, item_usage is 53, type is 10, name is RZ
USBJoystick: [6021.34] parse_usb_hid_device_descriptor: Joystick/gamepad parsed and configured successfully (joy_slot is 0)
USBJoystick: [6021.34] joy_check_device: Parsed HID report descriptor, got_valid_joystick is 1
USBJoystick: [6021.34] joy_check_device: Running start-up for PlayStation 3 controller
USBJoystick: [6021.34] usb_hid_get_report: dev 'USB19' wValue 0x3f2, wIndex 0, wLength 17
USBJoystick: [6021.35] usb_hid_get_report: dev 'USB19' wValue 0x3f5, wIndex 0, wLength 8
USBJoystick: [6021.37] usb_hid_set_report: dev 'USB19' wValue 0x2f5, wIndex 0, wLength 1
USBJoystick: [6021.38] usb_control: USB19: set report: attempt 1 of 3 failed after 1 cs: Bad request
USBJoystick: [6021.43] usb_control: USB19: set report: attempt 2 of 3 failed after 6 cs: Bad request
USBJoystick: [6021.48] usb_control: USB19: set report: attempt 3 of 3 failed after 11 cs: Bad request
USBJoystick: [6021.48] usb_control: USB19: set report: gave up after 3 attempts, 11 cs in all
USBJoystick: [6021.48] joy_check_device: Start-up failed on device USB19: Bad request
USBJoystick: [6021.48] joy_check_device: endpoint descriptor: EndpointAddress 2, (on InterfaceNumber 0)
USBJoystick: [6021.48] joy_check_device: endpoint descriptor: OUT endpoint, but no joystick on this interface - ignore
USBJoystick: [6021.48] joy_check_device: endpoint descriptor: EndpointAddress 129, (on InterfaceNumber 0)
USBJoystick: [6021.48] joy_check_device: endpoint descriptor: We think this is a joystick (got HID report descriptor and it looks good), so set up
USBJoystick: [6021.48] set_up_joystick: Fill up joystick info for device 'USB19', interface 0, endpoint 129
USBJoystick: [6021.49] usb_get_language: USB19: language 0x0409
USBJoystick: [6021.50] set_up_joystick: String index 1, Manufacturer: 'Sony'
USBJoystick: [6021.50] set_up_joystick: String index 2, Product: 'PLAYSTATION(R)3 Controller'
USBJoystick: [6021.50] set_up_joystick: No serial number string
USBJoystick: [6021.50] set_up_joystick: Constructed DeviceFS path for slot 0, path is: devices#interface=0;endpoint=1;nopad;noblock:USB19
USBJoystick: [6021.50] set_up_joystick: Open a connection to the joystick (id is 0)
USBJoystick: [6021.50] config_fingerprint: slot 0 -> '054c:0268'
USBJoystick: [6021.51] config_apply: no section for '054c:0268' - keeping defaults
USBJoystick: [6026.78] Debug: Printing out single stick slot 0
USBJoystick: [6026.79] USBJoystick_Rumble: slot 0: low 65535, high 0, 800 ms
USBJoystick: [6026.79] rumble_set: slot 0: low 65535, high 0, 800 ms
USBJoystick: [6026.79] usb_hid_set_report: dev 'USB19' wValue 0x201, wIndex 0, wLength 49
USBJoystick: [6026.80] USBJoystick_Rumble: slot 0: low 0, high 65535, 800 ms
USBJoystick: [6026.80] rumble_set: slot 0: low 0, high 65535, 800 ms
USBJoystick: [6026.80] usb_hid_set_report: dev 'USB19' wValue 0x201, wIndex 0, wLength 49
USBJoystick: [6026.81] USBJoystick_Rumble: slot 0: low 0, high 0, 1000 ms
USBJoystick: [6026.81] rumble_set: slot 0: stop
USBJoystick: [6026.81] usb_hid_set_report: dev 'USB19' wValue 0x201, wIndex 0, wLength 49
grannyg
Posts: 27
Joined: Fri Dec 13, 2013

Re: Rumble and wireless assistance

Post by grannyg »

same for ps4,

Code: Select all

USBJoystick: [5870.08] joy_check_device: (usb service call) +++++++++++++++++++++++++++++++++++
USBJoystick: [5870.08] clock: joy_check_device: Fri,23 Oct 2026.14:50:57
USBJoystick: [5870.08] joy_check_device: Checking device name 'USB18' (sclen 277, descoff 32, class 00, subclass 00, protocol 00)
USBJoystick: [5870.08] joy_check_device: Getting USB descriptors
USBJoystick: [5870.08] usb_get_descriptor_list: device 'USB18'
USBJoystick: [5870.08] joy_check_device: Parsing USB descriptors
USBJoystick: [5870.08] joy_check_device: Device descriptor: Length 18, Type 1, Configurations 1, csDeviceClass 0x0
USBJoystick: [5870.08] joy_check_device: Device descriptor: iManufacturer 1, iProduct 2, iSerialNumber 0
USBJoystick: [5870.08] joy_check_device: Device descriptor: Vendor 0x054c, Product 0x09cc, Device 0x0100
USBJoystick: [5870.08] joy_check_device: Configuration descriptor: Length 9, Type 2, TotalLength 225, NumInterfaces 4 
USBJoystick: [5870.08] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 0, InterfaceClass 1 (3 is HID), iInterface 0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10100
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x1, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 1, InterfaceClass 1 (3 is HID), iInterface 0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 1, InterfaceClass 1 (3 is HID), iInterface 0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x2, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x2, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: endpoint descriptor: EndpointAddress 1, (on InterfaceNumber 1)
USBJoystick: [5870.08] joy_check_device: endpoint descriptor: OUT endpoint, but no joystick on this interface - ignore
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 37 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x2, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 2, InterfaceClass 1 (3 is HID), iInterface 0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 2, InterfaceClass 1 (3 is HID), iInterface 0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x2, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 36 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x2, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: endpoint descriptor: EndpointAddress 130, (on InterfaceNumber 2)
USBJoystick: [5870.08] joy_check_device: endpoint descriptor: We think this isn't a joystick - ignore this endpoint
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 37 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x10200
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x1, InterfaceSubClass 0x2, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Not a supported device - aborting
USBJoystick: [5870.08] joy_check_device: Interface descriptor: Length 9, DescriptorType 4, InterfaceNumber 3, InterfaceClass 3 (3 is HID), iInterface 0, csInterfaceClass 0x30000
USBJoystick: [5870.08] joy_check_device: Other descriptor: type is 33 - not Device/Config/Interface/Endpoint
USBJoystick: [5870.08] joy_check_device: csDeviceClass 0x0, csInterfaceClass 0x30000
USBJoystick: [5870.08] joy_check_device: InterfaceClass 0x3, InterfaceSubClass 0x0, InterfaceProtocol 0, Vendor 0x054c, Product 0x09cc
USBJoystick: [5870.08] joy_check_device: Supported device: PlayStation 4 controller
USBJoystick: [5870.08] joy_check_device: Assume we are looking at a HID device descriptor
USBJoystick: [5870.08] joy_check_device: Getting HID report descriptor from device...
USBJoystick: [5870.08] get_report_descriptor: HID device descriptor: Length 9, DescriptorType 33, HID 273, country 0, NumDescriptors 1, ReportDescType 34, ReportDescLength 507
USBJoystick: [5870.08] get_report_descriptor: Calculated ReportDescriptorType 32, ReportDescriptorId 2
USBJoystick: [5870.08] get_report_descriptor: Getting HID report descriptor
USBJoystick: [5870.08] usb_get_descriptor: dev 'USB18' wValue 0x2200, wIndex 0, wLength 507
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 507 bytes
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0000: 05 01 09 05 a1 01 85 01 09 30 09 31 09 32 09 35
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0010: 15 00 26 ff 00 75 08 95 04 81 02 09 39 15 00 25
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0020: 07 35 00 46 3b 01 65 14 75 04 95 01 81 42 65 00
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0030: 05 09 19 01 29 0e 15 00 25 01 75 01 95 0e 81 02
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0040: 06 00 ff 09 20 75 06 95 01 15 00 25 7f 81 02 05
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0050: 01 09 33 09 34 15 00 26 ff 00 75 08 95 02 81 02
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0060: 06 00 ff 09 21 95 36 81 02 85 05 09 22 95 1f 91
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0070: 02 85 04 09 23 95 24 b1 02 85 02 09 24 95 24 b1
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0080: 02 85 08 09 25 95 03 b1 02 85 10 09 26 95 04 b1
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0090: 02 85 11 09 27 95 02 b1 02 85 12 06 02 ff 09 21
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 00a0: 95 0f b1 02 85 13 09 22 95 16 b1 02 85 14 06 05
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 00b0: ff 09 20 95 10 b1 02 85 15 09 21 95 2c b1 02 06
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 00c0: 80 ff 85 80 09 20 95 06 b1 02 85 81 09 21 95 06
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 00d0: b1 02 85 82 09 22 95 05 b1 02 85 83 09 23 95 01
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 00e0: b1 02 85 84 09 24 95 04 b1 02 85 85 09 25 95 06
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 00f0: b1 02 85 86 09 26 95 06 b1 02 85 87 09 27 95 23
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0100: b1 02 85 88 09 28 95 22 b1 02 85 89 09 29 95 02
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0110: b1 02 85 90 09 30 95 05 b1 02 85 91 09 31 95 03
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0120: b1 02 85 92 09 32 95 03 b1 02 85 93 09 33 95 0c
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0130: b1 02 85 a0 09 40 95 06 b1 02 85 a1 09 41 95 01
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0140: b1 02 85 a2 09 42 95 01 b1 02 85 a3 09 43 95 30
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0150: b1 02 85 a4 09 44 95 0d b1 02 85 a5 09 45 95 15
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0160: b1 02 85 a6 09 46 95 15 b1 02 85 f0 09 47 95 3f
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0170: b1 02 85 f1 09 48 95 3f b1 02 85 f2 09 49 95 0f
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0180: b1 02 85 a7 09 4a 95 01 b1 02 85 a8 09 4b 95 01
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 0190: b1 02 85 a9 09 4c 95 08 b1 02 85 aa 09 4e 95 01
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 01a0: b1 02 85 ab 09 4f 95 39 b1 02 85 ac 09 50 95 39
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 01b0: b1 02 85 ad 09 51 95 0b b1 02 85 ae 09 52 95 01
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 01c0: b1 02 85 af 09 53 95 02 b1 02 85 b0 09 54 95 3f
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 01d0: b1 02 85 b1 09 55 95 02 b1 02 85 b2 09 56 95 02
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 01e0: b1 02 85 e0 09 57 95 02 b1 02 85 b3 09 55 95 3f
USBJoystick: [5870.09] get_report_descriptor: report descriptor: 01f0: b1 02 85 b4 09 55 95 3f b1 02 c0
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Will use joystick number 0 (next available) for this HID parse
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Shared report descriptor 'rd' (size 251) with libusbhid
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: HID report descriptors use a reportid, so switching from 0 to 1
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Got hid report size 63 for reportid 1, has_report_id is 1
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Parse completed - freeing libusbhid report descriptor memory
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Analysing parse output to build axes info
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Axis 0, item_usage is 48, type is 5, name is X
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Axis 1, item_usage is 49, type is 6, name is Y
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Axis 2, item_usage is 50, type is 7, name is Z
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Axis 3, item_usage is 53, type is 10, name is RZ
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Axis 4, item_usage is 51, type is 8, name is RX
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Axis 5, item_usage is 52, type is 9, name is RY
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Stick has HAT switch and we have two axes spare to use
USBJoystick: [5870.09] parse_usb_hid_device_descriptor: Joystick/gamepad parsed and configured successfully (joy_slot is 0)
USBJoystick: [5870.09] joy_check_device: Parsed HID report descriptor, got_valid_joystick is 1
USBJoystick: [5870.09] joy_check_device: endpoint descriptor: EndpointAddress 132, (on InterfaceNumber 3)
USBJoystick: [5870.09] joy_check_device: endpoint descriptor: We think this is a joystick (got HID report descriptor and it looks good), so set up
USBJoystick: [5870.09] set_up_joystick: Fill up joystick info for device 'USB18', interface 3, endpoint 132
USBJoystick: [5870.09] usb_get_language: USB18: language 0x0409
USBJoystick: [5870.09] set_up_joystick: String index 1, Manufacturer: 'Sony Interactive Entertainment'
USBJoystick: [5870.09] set_up_joystick: String index 2, Product: 'Wireless Controller'
USBJoystick: [5870.09] set_up_joystick: No serial number string
USBJoystick: [5870.09] set_up_joystick: Constructed DeviceFS path for slot 0, path is: devices#interface=3;endpoint=4;nopad;noblock:USB18
USBJoystick: [5870.09] set_up_joystick: Open a connection to the joystick (id is 0)
USBJoystick: [5870.09] config_fingerprint: slot 0 -> '054c:09cc'
USBJoystick: [5870.10] config_apply: applying saved mapping for '054c:09cc'
USBJoystick: [5870.10] joy_check_device: endpoint descriptor: EndpointAddress 3, (on InterfaceNumber 3)
USBJoystick: [5870.10] joy_check_device: endpoint descriptor: OUT endpoint 3 belongs to slot 0
USBJoystick: [5877.57] Debug: Printing out single stick slot 0
USBJoystick: [5877.64] USBJoystick_Rumble: slot 0: low 65535, high 0, 800 ms
USBJoystick: [5877.64] rumble_set: slot 0: low 65535, high 0, 800 ms
USBJoystick: [5877.64] usb_write: USB18: 32 bytes, attempt 1 of 3 succeeded, 0 cs in all
USBJoystick: [5877.64] USBJoystick_Rumble: slot 0: low 0, high 65535, 800 ms
USBJoystick: [5877.64] rumble_set: slot 0: low 0, high 65535, 800 ms
USBJoystick: [5877.64] usb_write: USB18: 32 bytes, attempt 1 of 3 succeeded, 0 cs in all
USBJoystick: [5877.64] USBJoystick_Rumble: slot 0: low 0, high 0, 1000 ms
USBJoystick: [5877.64] rumble_set: slot 0: stop
USBJoystick: [5877.64] usb_write: USB18: 32 bytes, attempt 1 of 3 succeeded, 0 cs in all

richw
Posts: 189
Joined: Sat Sep 14, 2013

Re: Rumble and wireless assistance

Post by richw »

Great, thanks for that.

Did the PS4 rumble, but the PS3 not?

Did you get any 'player' LEDs lighting up? If you plug in one controller, it should light itself up as 'player 1', then a second would be 'player 2' etc. But maybe this is more of a thing on wireless, and they don't bother on wired. It's annoying I don't have any here!

I'll have to make another build with some further log and behaviour tweaks, and I'll also extend some manual debug commands so I can give you a few different *commands to try and make the PS3 pad rumble! Otherwise we'll need about two dozen builds to get there!
Post Reply