Third Party XBox One S Controller support

Need help? Ask here and someone will help
Post Reply
audiossis
Posts: 4
Joined: Tue Jun 16, 2020 1:39 pm

Third Party XBox One S Controller support

Post by audiossis »

Built a GIMX on a RPi 3B+ just recently and I appear to have my UART interface sorted out using an Arduino Micro clone. the RPi communicates with the UART interface via the onboard serial port at /dev/ttyS0.

I have two XBox controllers. One genuine wireless unit supplied with my XBox, and one after market wired unit made by Afterglow.
The genuine unit recently had a firmware update after I (perhaps ignorantly) decided to join Insider and try the Beta XBox streaming project.

It's now running 4.8.1923.0

I'm guessing from what I read here https://gimx.fr/forum/viewtopic.php?f=5&t=3395 that was the wrong thing to do as this controller presents the following error:

Code: Select all

pi@raspberrypi:~ $ /usr/bin/gimx -p /dev/ttyS0 -c XOnePadUsb.xml --nograb
controller #1: option -p with value `/dev/ttyS0'
now reading arguments for controller #2
global option -c with value `XOnePadUsb.xml'
grab flag is unset
GIMX adapter detected, controller type is: XOnePad.
Firmware version: 8.0
Reset sent to the GIMX adapter.
Current baudrate: 500000 bps.
Trying baudrate: 2000000 bps.
Trying baudrate: 1000000 bps.
Trying baudrate: 500000 bps.
Using baudrate: 500000 bps.
found pass-through device 0x045e:0x02ea
registered joystick 0 with name "Microsoft X-Box One S pad"
using default refresh period: 4.00ms
Haptic core has source haptic_source_rumble for device 045e:02d1
No haptic sink found for joystick 0 (Microsoft X-Box One pad)
Rumble pass-through to joystick 0 (Microsoft X-Box One pad)
Press the guide button of the controller for 2 seconds.
Exiting
src/gusb.c:384 transfer_timeout: libusb_interrupt_transfer failed with error: No such device (it may have been disconnected)
connectors/usb_con.c:589 usb_send_interrupt_out_sync: error sending interrupt out
src/gusb.c:872 handle_interfaces: libusb_release_interface failed with error: No such device (it may have been disconnected)

The Afterglow unit however, isn't even detected by GIMX. This is what I see when trying the Afterglow unit:

Code: Select all

/usr/bin/gimx -p /dev/ttyS0 -c XOnePadUsb.xml --nograb
controller #1: option -p with value `/dev/ttyS0'
now reading arguments for controller #2
global option -c with value `XOnePadUsb.xml'
grab flag is unset
GIMX adapter detected, controller type is: XOnePad.
Firmware version: 8.0
Reset sent to the GIMX adapter.
Current baudrate: 500000 bps.
Trying baudrate: 2000000 bps.
Trying baudrate: 1000000 bps.
Trying baudrate: 500000 bps.
Using baudrate: 500000 bps.
Error: No game controller was found on USB ports.
Is there a list of third party Xbox One controllers known to work with GIMX? Or a reliable instruction somewhere on getting the firmware downgraded in my genuine controller? Or is it that I'm just doing something dumb?
User avatar
LoneWolf81
Posts: 235
Joined: Sat Jun 15, 2019 11:49 am
Location: South Africa

Re: Third Party XBox One S Controller support

Post by LoneWolf81 »

Hi

As far as I know third party controllers are not supported, the reason its not being detected is GIMX is looking for specific device descriptors and the Afterglow one is not in that list.

Connect both controllers and run lsusb and post the output.
Please Remember to Post your Log file in the support section , that way its easier and faster to start identifying the issue thus helping you to sort it out so you can enjoy GIMX :D .
audiossis
Posts: 4
Joined: Tue Jun 16, 2020 1:39 pm

Re: Third Party XBox One S Controller support

Post by audiossis »

Thanks for the reply. I thought that might be the case. Connecting both units at the same time doesn't seem to make any difference. Should I enable some extra debugging options?

The device 0e6f:0139 "Logic3" in the out put below is the Afterglow controller and the 06a3:0d62 "Saitek PLC" is an old joystick connected for testing/educational purposes

Code: Select all

pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 06a3:0d62 Saitek PLC 
Bus 001 Device 028: ID 0e6f:0139 Logic3 
Bus 001 Device 013: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 012: ID 05ac:024f Apple, Inc. 
Bus 001 Device 011: ID 05ac:1006 Apple, Inc. Hub in Aluminum Keyboard
Bus 001 Device 029: ID 045e:02ea Microsoft Corp. Xbox One S Controller
Bus 001 Device 007: ID 0424:7800 Standard Microsystems Corp. 
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ 
pi@raspberrypi:~ $ /usr/bin/gimx -p /dev/ttyS0 -c XOnePadUsb.xml --nograb
controller #1: option -p with value `/dev/ttyS0'
now reading arguments for controller #2
global option -c with value `XOnePadUsb.xml'
grab flag is unset
GIMX adapter detected, controller type is: XOnePad.
Firmware version: 8.0
Reset sent to the GIMX adapter.
Current baudrate: 500000 bps.
Trying baudrate: 2000000 bps.
Trying baudrate: 1000000 bps.
Trying baudrate: 500000 bps.
Using baudrate: 500000 bps.
found pass-through device 0x045e:0x02ea
registered joystick 0 with name "Microsoft X-Box One S pad"
using default refresh period: 4.00ms
Haptic core has source haptic_source_rumble for device 045e:02d1
No haptic sink found for joystick 0 (Microsoft X-Box One pad)
Rumble pass-through to joystick 0 (Microsoft X-Box One pad)
Press the guide button of the controller for 2 seconds.
Exiting
src/gusb.c:384 transfer_timeout: libusb_interrupt_transfer failed with error: No such device (it may have been disconnected)
connectors/usb_con.c:589 usb_send_interrupt_out_sync: error sending interrupt out
src/gusb.c:872 handle_interfaces: libusb_release_interface failed with error: No such device (it may have been disconnected)
pi@raspberrypi:~ $ 

User avatar
LoneWolf81
Posts: 235
Joined: Sat Jun 15, 2019 11:49 am
Location: South Africa

Re: Third Party XBox One S Controller support

Post by LoneWolf81 »

No it would not have made a difference as you can see the identification is completely different I just wanted to show you why its not detecting in GIMX.

GIMX is looking for the vendor ID in this case 045e
Please Remember to Post your Log file in the support section , that way its easier and faster to start identifying the issue thus helping you to sort it out so you can enjoy GIMX :D .
audiossis
Posts: 4
Joined: Tue Jun 16, 2020 1:39 pm

Re: Third Party XBox One S Controller support

Post by audiossis »

Any idea where in the code the Vendor ID's are? I wonder what happens if I add the Afterglow VID to that list?
User avatar
LoneWolf81
Posts: 235
Joined: Sat Jun 15, 2019 11:49 am
Location: South Africa

Re: Third Party XBox One S Controller support

Post by LoneWolf81 »

There is no way of simply adding them as its quite a bit of work as its coded into GIMX as a whole, as far as I am aware there is work being done on a fix for the newer firmware. When its going to be released I cant say.
Please Remember to Post your Log file in the support section , that way its easier and faster to start identifying the issue thus helping you to sort it out so you can enjoy GIMX :D .
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: Third Party XBox One S Controller support

Post by Matlo »

Hello,

It would take too much time and energy to support all third party controllers for authentication, which is why only official controllers are currently supported for authentication. Support for the Xbox One controller firmware v4 is work in progress.
GIMX creator
audiossis
Posts: 4
Joined: Tue Jun 16, 2020 1:39 pm

Re: Third Party XBox One S Controller support

Post by audiossis »

Matlo wrote: Thu Jun 18, 2020 2:02 pm Hello,

It would take too much time and energy to support all third party controllers for authentication, which is why only official controllers are currently supported for authentication. Support for the Xbox One controller firmware v4 is work in progress.
I kinda though you might be working on support for later controller firmwares. I'd picked up on that from some of the other threads I'd seen you comment in. Any idea how far way that support might be?

I can understand not supporting third party controllers. I was more thinking to have a little fun trying to do that on my own and I've already discovered that the original controller has two interrupt driven endpoints where my Afterglow has one interrupt and one isochronous. I'm sure that's only the beginning of the differences though..
Post Reply