Skip to content

Driver Station Crashes with v1 PS4 Controller #173

Closed
@ryleu

Description

@ryleu

When connecting a gen 1 PS4 controller to a phone running the driver station app (I currently only have access to a Moto G Play gen 1, though people on Discord said it was a DS bug), the app crashes with this error:

2021-09-25 15:44:15.551 26352-26352/? D/AndroidGamepadManager: onInputDeviceAdded() id=24 vid=0x54C pid=0x5C4
2021-09-25 15:44:15.554 1639-2738/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:763 com.android.server.usb.UsbSettingsManager.deviceAttached:746 com.android.server.usb.UsbHostManager.endUsbDeviceAdded:246 com.android.server.usb.UsbHostManager.monitorUsbHostBus:-2 com.android.server.usb.UsbHostManager.-wrap0:-1 
2021-09-25 15:44:15.556 1639-2738/? I/ActivityManager: START u0 {act=android.hardware.usb.action.USB_DEVICE_ATTACHED flg=0x10000000 cmp=com.qualcomm.ftcdriverstation/.DriverStationUserspaceAlias (has extras)} from uid 1000 on display 0
2021-09-25 15:44:15.559 26352-26352/? V/DriverStation: Lifecycle onPause() : 8763187
2021-09-25 15:44:15.561 26352-26352/? D/DirectAccessGamepadMgr: ACTION_USB_DEVICE_ATTACHED_INTENT device id=1004 vid=0x54C pid=0x5C4 /dev/bus/usb/001/004
2021-09-25 15:44:15.561 26352-26352/? D/DirectAccessGamepadMgr: USB device id=1004 has been autodetected based on USB VID and PID as a Sony PS4 (Gen 1) gamepad; hooking with userspace driver
2021-09-25 15:44:15.562 26352-26352/? D/PS4GamepadImpl(id=1004): openAssumingPermission()
2021-09-25 15:44:15.562 26352-26352/? D/AndroidRuntime: Shutting down VM
2021-09-25 15:44:15.563 26352-26352/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.qualcomm.ftcdriverstation, PID: 26352
    java.lang.RuntimeException
        at org.firstinspires.directgamepadaccess.usb.ps4.PS4GamepadImpl.openAssumingPermission(PS4GamepadImpl.java:156)
        at org.firstinspires.directgamepadaccess.usb.DirectAccessGamepadManager.connectGamepad(DirectAccessGamepadManager.java:255)
        at org.firstinspires.directgamepadaccess.usb.DirectAccessGamepadManager.onNewIntent(DirectAccessGamepadManager.java:176)
        at org.firstinspires.directgamepadaccess.core.CompositeGamepadManager.onNewIntent(CompositeGamepadManager.java:77)
        at com.qualcomm.ftcdriverstation.DriverStationGamepadManager.handleNewIntent(DriverStationGamepadManager.java:486)
        at com.qualcomm.ftcdriverstation.FtcDriverStationActivity.onNewIntent(FtcDriverStationActivity.java:1085)
        at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1235)
        at android.app.Instrumentation.callActivityOnNewIntent(Instrumentation.java:1247)
        at android.app.ActivityThread.deliverNewIntents(ActivityThread.java:2566)
        at android.app.ActivityThread.performNewIntents(ActivityThread.java:2578)
        at android.app.ActivityThread.handleNewIntent(ActivityThread.java:2587)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1429)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5459)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
2021-09-25 15:44:15.566 1639-3369/? W/ActivityManager:   Force finishing activity com.qualcomm.ftcdriverstation/.FtcDriverStationActivity

This is the relevant output of lsusb -vv with the controller connected to a Linux box:


Bus 005 Device 002: ID 054c:05c4 Sony Corp. DualShock 4 [CUH-ZCT1x]
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x054c Sony Corp.
  idProduct          0x05c4 DualShock 4 [CUH-ZCT1x]
  bcdDevice            1.00
  iManufacturer           1 Sony Computer Entertainment
  iProduct                2 Wireless Controller
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     499
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               5
Device Status:     0x0000
  (Bus Powered)

This only happens when advanced gamepad features are enabled. If the features are disabled, the controller works perfectly.

Android version: 6.0.1
App version: 7.0.0
Hardware: Moto G Play
Controller model number: CUH-ZCT1U

I'm willing to help test software if the developers don't want to purchase a gen 1 PS4 controller.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions