8bitdo Arcade Stick - Trigger Buttons are setup as Axes
-
The Vendor/Prod should be handled by
xpad
(looks like the controller tries to mimic the original Xbox 360 controllers).Can you run the following commands
sudo dmesg -c # unplug the controller, then plug it back again dmesg
Can you post the output of the last
dmesg
command ? -
Ok, I have a small update, I sincerely hope this info can help.
This morning I did the following:
- made a fresh install of RetroPie 4.7.1
- went into retropie setup and updated everything I could, including update all driver packages. I believe it updated the xpad driver.
- connected the 8bitdo arcade stick using bluetooth. Same issue, the LT and RT buttons did not register at all...
- came back to this forum and realised you probably wanted to check the controller while plugged in via usb due to the lsusb command...
- plugged in via usb, went to configuration setup. The LT and RT buttons registered during setup! They show up as button 6 and button 7.
Here are the logs requested after this process in case it shows the difference . Let me know if you would like to see anything else.
cat /proc/bus/input/devices
I: Bus=0003 Vendor=046d Product=404d Version=0111 N: Name="Logitech K400 Plus" P: Phys=usb-0000:01:00.0-1.3/input2:1 S: Sysfs=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.3/1-1.3:1.2/0003:046D:C52B.0003/0003:046D:404D.0004/input/input12 U: Uniq=404d-01-a3-ee-56 H: Handlers=sysrq kbd leds mouse0 event0 B: PROP=0 B: EV=12001f B: KEY=3f 301ff 0 0 0 0 483ffff 17aff32d bfd44446 0 0 ffff0001 130ff3 8b17c007 ffff7bfa d941dfff ffbeffdf ffefffff ffffffff fffffffe B: REL=1943 B: ABS=1 0 B: MSC=10 B: LED=1f I: Bus=0003 Vendor=045e Product=028e Version=0114 N: Name="Microsoft X-Box 360 pad" P: Phys=usb-0000:01:00.0-1.2/input0 S: Sysfs=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input15 U: Uniq= H: Handlers=event2 js1 B: PROP=0 B: EV=20000b B: KEY=7fdb0000 0 0 0 0 0 0 0 0 0 B: ABS=3001b B: FF=1 7030000 0 0
lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver Bus 001 Device 005: ID 045e:028e Microsoft Corp. Xbox360 Controller Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
sudo dmesg -c after unplugging and replugging device
[ 3285.532597] usb 1-1.2: USB disconnect, device number 5 [ 3285.533235] xpad 1-1.2:1.0: xpad_try_sending_next_out_packet - usb_submit_urb failed with result -19 [ 3286.188939] microsoft 0005:045E:02E0.0006: unknown main item tag 0x0 [ 3286.189509] input: 8BitDo Arcade Stick as /devices/platform/soc/fe201000.serial/tty/ttyAMA0/hci0/hci0:11/0005:045E:02E0.0006/input/input16 [ 3286.189943] microsoft 0005:045E:02E0.0006: input,hidraw2: BLUETOOTH HID v9.03 Gamepad [8BitDo Arcade Stick] on dc:a6:32:96:d3:4a [ 3294.802557] usb 1-1.2: new full-speed USB device number 6 using xhci_hcd [ 3294.941341] usb 1-1.2: unable to read config index 0 descriptor/all [ 3294.941371] usb 1-1.2: can't read configurations, error -32 [ 3295.262536] usb 1-1.2: new full-speed USB device number 7 using xhci_hcd [ 3295.424586] usb 1-1.2: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14 [ 3295.424608] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 3295.424627] usb 1-1.2: Product: Controller [ 3295.424644] usb 1-1.2: Manufacturer: 8BitDo [ 3295.424659] usb 1-1.2: SerialNumber: 157F8F8 [ 3295.431774] input: Microsoft X-Box 360 pad as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input17
-
@rastabolino Thank you for the info.
The log shows the controller being connected both via Bluetooth and USB. If the gamepad you configured in EmulationStation was named 8BitDo Arcade Stick, then you configured the Bluetooth part, if it was named Microsoft X-Box 360 pad, then you paired via the USB connection. -
@mitu said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
sudo dmesg -c
[27772.257106] usb 1-1.1: USB disconnect, device number 9 [27772.257683] xpad 1-1.1:1.0: xpad_try_sending_next_out_packet - usb_submit_urb failed with result -19 [27775.878995] usb 1-1.1: new full-speed USB device number 10 using xhci_hcd [27776.017496] usb 1-1.1: New USB device found, idVendor=2dc8, idProduct=3207, bcdDevice= 2.00 [27776.017513] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [27776.017528] usb 1-1.1: Product: 8BitDo Arcade Stick Receiver [27776.017542] usb 1-1.1: Manufacturer: 8BitDo [27776.031451] hid-generic 0003:2DC8:3207.0008: hiddev96,hidraw0: USB HID v1.11 Device [8BitDo 8BitDo Arcade Stick Receiver] on usb-0000:01:00.0-1.1/input0 [27783.523003] usb 1-1.1: USB disconnect, device number 10 [27784.839115] usb 1-1.1: new full-speed USB device number 11 using xhci_hcd [27784.979942] usb 1-1.1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14 [27784.979960] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [27784.979974] usb 1-1.1: Product: Controller [27784.979989] usb 1-1.1: Manufacturer: 8BitDo [27784.980002] usb 1-1.1: SerialNumber: 157F8F8 [27784.984976] input: Microsoft X-Box 360 pad as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input14
-
I can confirm the following:
Updating the xpad driver that comes pre-installed on 4.7.1 release fixed the problem for me for the USB connection only. All the buttons can now be assigned controls.
The Bluetooth functionality is still not there though... LT and RT are not recognized and can't be assigned. I'll start a new thread for that since it's a different issue from this thread.
-
@rastabolino said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
I can confirm the following:
Updating the xpad driver that comes pre-installed on 4.7.1 release fixed the problem for me for the USB connection only. All the buttons can now be assigned controls.
The Bluetooth functionality is still not there though... LT and RT are not recognized and can't be assigned. I'll start a new thread for that since it's a different issue from this thread.
I'm not getting the same results as you. I have tried updating xpad and uninstalling and reinstalling xpad. In neither case does my setup recognize the trigger buttons as buttons. It sees them as axes that go from -xxxxx to xxxxx as Axes #2 and #5.
I have not tried setting the device up over bluetooth as I want it to work over usb for reduced latency.
-
@superdodge Is the controller plugged in directly ? Your log shows a receiver is also connected via USB.
Have you tried to connect the controller in Switch mode ? Does is behave differently ?
-
@mitu said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
@superdodge Is the controller plugged in directly ? Your log shows a receiver is also connected via USB.
There are three ways to connect this Arcade Stick to the Pi.
#1 - Bluetooth
#2 - Hard-wired USB
#3 - An included 2.4Ghz 8bitdo USB adapter.The battery on the device lasts longer and the latency is lower using #2 over #1.
My use case goal is to use #2 & #3 depending on whether I'm casually gaming with friends or "getting serious" lol.
I have tried and get the same results in both use case #2 and use case #3. I ran all the commands you asked for above in use case #3. I can re-run in the in use case #2 if it will help in any way.
I came here hoping there was some way to tell xpad to treat these as buttons not axes via xpad.conf, etc.
-
@mitu said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
Have you tried to connect the controller in Switch mode ? Does is behave differently ?
I ran jstest in switch mode and it shows all the buttons triggering on and off and several of the axes going from extreme to extreme.
-
@superdodge said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
I came here hoping there was some way to tell xpad to treat these as buttons not axes via xpad.conf, etc.
xpad
has a parameter (triggers_to_buttons
) that does exactly that. The RetroPie setup script adds automatically this parameter when installing the driver, you can check the/etc/modprobe.d/xpad.conf
configuration file to see if it's enabled. -
Solved although the solution is a bit odd. I'll record what I had to do here for anyone else with the same issue.
If the 8bitdo Arcade Stick is plugged in via hard wire or has the usb receiver plugged in when removing and reinstalling xpad via the Retropie Setup script then I got results where the trigger buttons were seen as axes. With nothing plugged in and repeating the same steps it behaves normally.
This makes no sense to me but I honestly don't understand how Retropie modifies the xpad install post installation so maybe it is somehow meaningful.
Regardless my 8bitdo Arcade Stick is now functioning as expected.
-
So I lied. Just ran jstest and it appears that xpad now sees the trigger buttons as the Left Stick and Right Stick buttons. So while this allows me to physically use the buttons, I can't setup name controls where I can switch between controller types.
Is there any way to edit how xpad sees these buttons or it just is what it is?
-
@superdodge said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
Is there any way to edit how xpad sees these buttons or it just is what it is?
The
xpad
driver is 1 source file on https://github.com/paroj/xpad, you can freely modify the sources and re-compile the driver. -
@superdodge said in 8bitdo Arcade Stick - Trigger Buttons are setup as Axes:
So while this allows me to physically use the buttons, I can't setup name controls where I can switch between controller types.
If you want to re-map controls based on games, you can do so from the emulator - RetroArch allows you to have per-game input mappings, without re-configuring your controller.
-
I posted this in a similar thread. This workaround works flawlessly for me and doesn’t require any editing in Retropie:
- Go to the 8bitdo official website, download and install the 8bitdo ultimate software on your PC or Mac, if not already done.
- Plug the 8Bitdo Arcade Stick to your PC or Mac with a USB cable and make sure your selector knob is in “X” mode (top left of the 8bitdo Arcade Stick)
- Start the 8bitdo Ultimate software
- On the right, in the button mapping panel, beside RT, associate RS instead. Do the same for LT except choose LS.
- Don’t forget to synchronize the controller (icon at the top) before disconnecting the USB cable.
- Connect your 8bitdo Arcade stick to the Retropie either via a USB cable, the 2. To 4G stick or Bluetooth.
- Push the start button to get to the main menu (you might need another controller or keyboard to make the selections initially).
- Select “configure input”. At first, make sure your selector knob is selected to DP (middle selection) to associate D-pad up, down, left, right. This time the RT and RS buttons will work flawlessly.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.