-
Notifications
You must be signed in to change notification settings - Fork 779
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PS3USB and XBOXONE not working #216
Comments
This fix works for PS3USB. I will see if this works for the user with the XBOX ONE. |
Toggle errors are rare these days, and only appear on old broken hardware. Its probabbly safe to comment it out. UHS30 doesn't correct for it anymore either. |
The XBOXONE user reports #174 does not help. USB keyboard/mouse works so the shield hardware is working. |
@bbx10 is he using an official controller? Also he could try to power it through a USB Hub: https://github.com/felis/USB_Host_Shield_2.0#faq. |
The user is using a Keyes board and tried plugging in external power via the Uno barrel connector. I can suggest trying a powered USB hub. |
Hi :) the 2 problems that I can think of are the following:
The symptoms are as follows: once I've uploaded the example sketch to the arduino and I plug the controller in I get an initial buzz to let me know it has power but the serial monitor doesn't send anything other then "XBOX USB Library Started" on start up regardless of buttons pressed. The LED in the Xbox buttons stays off during all this. that's about as best as I can describe the problem I'm having with the Xbox One controller but here's the link to the arduino.cc forum post: https://forum.arduino.cc/index.php?topic=382891.0 Thanks for your help! |
Unfortunately I don't own a Xbox One controller. If someone donates one I will look into the issue. @Timesquad did you remember to enable serial debugging: https://github.com/felis/USB_Host_Shield_2.0#enable-debugging, so we can see what is going on? |
Debug gives the following information: XBOX USB Library Startedror code: D1 Xbox One Controller Disconnected XBOX USB Library Started Xbox One Controller Disconnected |
@Timesquad looks like its another hardware revision of the controller. Try setting this value: https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXONE.h#L39 to 0x02DD. Also please run the following example: https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/USB_desc/USB_desc.ino and post the output. |
Slight progress, when I run the XBOXONE example sketch. I get the following output: XBOX USB Library Started XboxCommand, Return: 00 USB_desc gives me : Start Addr:1(0.0.1) Endpoint descriptor: Addr:1(0.0.1) 01Device descriptor: Configuration descriptor: Interface descriptor: Endpoint descriptor: Endpoint descriptor: Interface descriptor: Interface descriptor: Endpoint descriptor: Endpoint descriptor: Interface descriptor: Interface descriptor: Endpoint descriptor: Endpoint descriptor: Addr:1(0.0.1) |
@Timesquad try to uncomment this line: https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXONE.cpp#L25. |
I get the following 02 20 51 1C 00 00 5E 04 XBOX USB Library Started XboxCommand, Return: 00 Ends with (when controller is unplugged): Xbox One Poll Failed, error code: 0E Xbox One Controller Disconnected |
@Timesquad okay. Do the bytes change when you press a button etc? |
Sadly no :/ |
Anything else I could try? |
@Timesquad I don't really know, since I don't own a Xbox One controller, so it is hard for me to debug your problem. |
How about I send you mine? Would you have time to deal with this issue? |
@Timesquad I don't have much time to look into it at the moment, so I would rather not borrow one. |
Did this issue ever get resolved? Would love to use my xbox one controller, but running into similar problems. @Lauszus Would you be willing to look into it now if an xbox-one controller was donated to you? |
I found a fix to get newer controllers working! You have to send 5 bytes to initialize the Controller if it has the id 0x02DD. The original driver only sends two, so the Controller cant connect. You can fix this by changing these lines: https://github.com/felis/USB_Host_Shield_2.0/blob/master/XBOXONE.cpp#L180-185 to writeBuf[0] = 0x05;
writeBuf[1] = 0x20;
writeBuf[2] = 0x00;
writeBuf[3] = 0x01;
writeBuf[4] = 0x00;
rcode = XboxCommand(writeBuf, 5); @Lauszus Is it possible to implement this fix in such a way, that the driver chooses the right bytes to start the Controller by itself? Source for the Fix: quantus/xbox-one-controller-protocol#3 |
@Lenni thanks a lot for your finding. I will prepare a PR right now. |
@Lenni do you have an older Xbox One controller by any change? It would be nice to know if you can send out all five bytes to the old controllers as well? |
check vid:pid perhaps, and the revision as hints for what to send?
…On Thu, Jun 15, 2017 at 5:54 AM, Kristian Sloth Lauszus < ***@***.***> wrote:
@Lenni <https://github.com/lenni> do you have an older Xbox One
controller by any change? It would be nice to know if you can send out all
five bytes to the old controllers as well?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#216 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ADskzIrVjLykUwc6p0XbvVESneNTqcOwks5sEP9hgaJpZM4Hpmnr>
.
--
Visit my github for awesome Arduino code @ https://github.com/xxxajk
|
@xxxajk I don't think that is necessary. My guess is that we can just send the longer message by default. |
@Lauszus I dont have an older Controller, so I cant check. But if you can wait 1 or 2 days, I can write a patch, so that the driver automatically determines the Version of the Controller. With this we would also fix the Error of the Driver not knowing the newer PICS. |
@Lauszus Looks good, but it would be great if you could implement the full list of PICs als found here: |
@Lenni will do that now. Btw it's called PIDs ;) |
@Lauszus Oops, sorry. I just recently started tinkering with this :D Looks great BTW! I can test the fix as soon as it is released! |
@Lenni just pull the XBOXONE_fix branch or download it at the following link: https://github.com/felis/USB_Host_Shield_2.0/archive/XBOXONE_fix.zip. |
@Lauszus Works like a charm. I could only test with one Controller though.... |
@Lenni awesome! I'll wait a couple of days for @guruthree to hopefully test it as well and then merge it. |
I'll test mind when I get home.
Rather exited about this!
Thanks for your work weather it works or not :)
…Sent from my iPhone
On 15 Jun 2017, at 14:32, Lennart Wilde ***@***.***> wrote:
@Lauszus Works like a charm. I could only test with one Controller though....
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
@Timesquad thanks! :) |
IT LIVES! SO happy! nice work :D THANKS! |
@Timesquad great. Can you try to run the |
I believe it is the second of 3 versions of controllers, first one was the Xbox one first came out, then an updated more comfortable one (for unknown reasons different internals) I have this one. and finally the bluetooth one that came out more recently. this is what it says: Start Addr:1(0.0.1) Endpoint descriptor: Addr:1(0.0.1) 01Device descriptor: Configuration descriptor: Interface descriptor: Endpoint descriptor: Endpoint descriptor: Interface descriptor: Interface descriptor: Endpoint descriptor: Endpoint descriptor: Interface descriptor: Interface descriptor: Endpoint descriptor: Endpoint descriptor: Addr:1(0.0.1) |
@Timesquad hmm that is the new Xbox One controller. It would be nice if someone with a controller with a PID of 0x02D1 could test it... |
It works OK with my controller, which is a 0x02D1. Notably my controller doesn't work without the patch. I did a firmware update maybe a year ago on it, which is probably the issue. |
IDE 1.6.7, UHS2 library 1.2.1
The discussion started on arduino.cc.
http://forum.arduino.cc/index.php?topic=382891.0
My PS3 controller connected via USB worked with an older version (1.0.0) of the library but does not work with 1.2.1. I found a workaround which involves commenting out 1 line in Usb.cpp. I am not sure this is the right way to fix the problem since this affects all USB devices. Debug output showed a stream of data toggle errors so I commented out the line that recovers from toggle errors. I can create a PR but this might break some other device.
Another user has a similar problem with an XBOX ONE controller but the 1 line workaround does not help. I do not have an XBOX ONE controller so I can not do much more. I will post a link to this issue on the arduino.cc thread.
The text was updated successfully, but these errors were encountered: