Skip to content

Add support for the Xbox One PDP Drumkit through the USB port  #11

@jeottesen

Description

@jeottesen

On the back of the Rock Band 4 Xbox One PDP controller, under the battery cover, is a micro USB port. There is this project on github that shows it is possible to read in the drum inputs when plugged in through the USB port. While it does recognize the inputs it's not good enough to actually play with.

https://github.com/OndrejBakan/pdp-drums/tree/master

So now I am looking into bringing it into YARG natively. I think it might work if I had a wireless receiver but I don't.

This is the device information from Unity. The vendorId and productId are the same but it shows as an HID device instead of a GameInput device.

{
    "interface": "HID",
    "type": "",
    "product": "PDP Tablah Drum Set",
    "serial": "0000000000000000",
    "version": "1537",
    "manufacturer": "Performance Designed Products",
    "capabilities": "{\"vendorId\":3695,\"productId\":369,\"usage\":1,\"usagePage\":65280,\"inputReportSize\":33,\"outputReportSize\":33,\"featureReportSize\":0,\"elements\":[],\"collections\":[]}"
}

I tried modifying the Initialize function in XboxOneFourLaneDrumkit to recognize the input. I tried just adding the following line.
HidLayoutFinder.RegisterLayout<XboxOneFourLaneDrumkit>(0x0E6F, 0x0171);
It didn't work at first because the usage and usagePage values don't match the values the InputDeviceMatcher in Hid LayoutFinder expects. When I commented out those requirements it finds it and tries to map it but it isn't quite right. The red pad registers as the blue cymbal for instance.

That's where I am stuck. I am willing to continue messing with this but my Unity experience is basically non existent. I am not sure how the buttons are being mapped to which bytes. I would also like some guidance on properly implementing the initialization so I don't need to comment anything out.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions