Configure 2 identical controllers differently
-
I am using a 8bitdo Retro Receiver:
And a 8bitdo USB Adapter:
I have paired different Controllers to each Receiver and I would like to configure each Receiver/Controller individualy.
But since both Receivers are using the same driver and are recognised as the same device they share one config:
usb 2-2: Product: 8Bitdo Receiver
usb 2-1: Product: 8Bitdo Receiver
They are recognised as Microsoft X-Box 360 pad.
Is there a way to configure them individualy?
-
@xadox Can you start one in Android mode and see if the identification is different ?
-
Since the Pi or PC only sees the receiver. There is no difference in what kind of mode is used with an 8bitdo controller.
You could also use a PS3 or PS4 controller with this kind of receivers.
The receivers do not have differend kind of modes (besides firmware update mode). -
@xadox That's not what you're telling in the first post - even if they're seen as an USB receiver, you say they're recognized as
Microsoft X-Box 360 Pad
. Are you runningxboxdrv
by any chance ? -
Yes. What I told in the first post its correct.
If I connect one of the Receivers without a Controller paired to them the following is shown (in this case under Ubuntu 16.04, no Pi around):usb 2-2.1: USB disconnect, device number 4 usb 2-2.1: new full-speed USB device number 5 using uhci_hcd usb 2-2.1: New USB device found, idVendor=045e, idProduct=028e usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-2.1: Product: 8Bitdo Receiver usb 2-2.1: Manufacturer: 8Bitdo Receiver usb 2-2.1: SerialNumber: Receiver input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb2/2-2/2-2.1/2-2.1:1.0/input/input7
So the system recognises the Receivers as Microsoft X-Box 360 pad.
Thexboxdrv
is not installed. -
At little history to @xadox's issue can also be found here. When you last wrote you noted that you were able to use a udev rule to create a unique symlink. To my knowledge, the only way to differentiate the two would be to have a different ID name. The only way I know how to do that would be to map a new virtual controller to one of the physical ones and assign a unique ID name there. I have a specific note on how to achieve this using xboxdrv, but you may be able to find a similar solution with other software.
-
@mediamogul Yeah. I thought it would be better to create an own thread for this.
I gave up with the udev rule, since I was not able to find enought information for this.I think I will give the
xboxdrv
a try and will read your FAQ first. -
@xadox said in Configure 2 identical controllers differently:
think I will give the xboxdrv a try
You might first see if you can discover any other possible solutions for changing the ID name. xboxdrv will definitely do the job, but it's a bit like taking a howitzer to a housefly.
-
@mediamogul Learing never hurts :)
Besides maybe I could also solve the problem with the
8BitDo SN30 PRO
that the left and right trigger buttons are not working in ES or RetroArch. -
delete the config that getting used or move it somewhere safe so there is no conflict
-
@mediamogul After some problems in getting
rc.local
running on Ubuntu 16.04 I was able to create the configs for the two Receivers.Both Receivers are getting individual Names and Configs in ES an RR, now.
The problem with the trigger buttons on the SN30 Pro could be solved, also.But I have no clue how to start
xboxdrv
with the configs for the two Receivers at once. I am only able to startxboxdrv
for one controller at once. -
Without seeing the script I can only guess, but it could be that xboxdrv is trying to call out to the same controller twice due to it having the same name. If this is the case, you could repeat the trick you were using earlier to create a unique symlinked event with a udev rule and point one of the xboxdrv launch instances to it. For troubleshooting, I always like to manually launch my xboxdrv instances from a terminal where I can view and correct any errors before I move them into a script.
-
@mediamogul At the moment I am starting xboxdrv manually from terminal.
/opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-path/pci-0000:02:03.0-usb-0:2.1:1.0-event-joystick \ --silent \ --detach-kernel-driver \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "8BitDo SFC30" \ --evdev-absmap ABS_X=dpad_x,ABS_Y=dpad_y \ --evdev-keymap BTN_EAST=a,BTN_SOUTH=b,BTN_WEST=x,BTN_NORTH=y,BTN_TL=lb,BTN_TR=rb,BTN_SELECT=back,BTN_START=start \ --dpad-only \ --ui-axismap lt=void,rt=void \ --ui-buttonmap tl=void,tr=void,guide=void \ --evdev /dev/input/by-path/pci-0000:02:03.0-usb-0:2.2:1.0-event-joystick \ --silent \ --detach-kernel-driver \ --force-feedback \ --deadzone-trigger 15% \ --deadzone 4000 \ --trigger-as-button \ --device-name "8BitDo SN30 Pro" \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_Z=lt,ABS_RZ=rt,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --evdev-keymap BTN_EAST=a,BTN_SOUTH=b,BTN_WEST=x,BTN_NORTH=y,BTN_TL=lb,BTN_TR=rb,BTN_THUMBL=tl,BTN_THUMBR=tr,BTN_MODE=guide,BTN_SELECT=back,BTN_START=start \ &
But
xboxdrv
only creates the first virtual controller.
The second one is beeing ignored.Starting
xboxdrv
two times with each config does not work, since I am only able to start the process once. -
See if they'll work in this format
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-path/pci-0000:02:03.0-usb-0:2.1:1.0-event-joystick \ --silent \ --detach-kernel-driver \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "8BitDo SFC30" \ --evdev-absmap ABS_X=dpad_x,ABS_Y=dpad_y \ --evdev-keymap BTN_EAST=a,BTN_SOUTH=b,BTN_WEST=x,BTN_NORTH=y,BTN_TL=lb,BTN_TR=rb,BTN_SELECT=back,BTN_START=start \ --dpad-only \ --ui-axismap lt=void,rt=void \ --ui-buttonmap tl=void,tr=void,guide=void \ & sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-path/pci-0000:02:03.0-usb-0:2.2:1.0-event-joystick \ --silent \ --detach-kernel-driver \ --force-feedback \ --deadzone-trigger 15% \ --deadzone 4000 \ --trigger-as-button \ --device-name "8BitDo SN30 Pro" \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_Z=lt,ABS_RZ=rt,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --evdev-keymap BTN_EAST=a,BTN_SOUTH=b,BTN_WEST=x,BTN_NORTH=y,BTN_TL=lb,BTN_TR=rb,BTN_THUMBL=tl,BTN_THUMBR=tr,BTN_MODE=guide,BTN_SELECT=back,BTN_START=start \ &
-
@mediamogul Working, thx!
-
Ah, nice. Glad to hear it.
-
Using
xboxdrv
solves most of the problems I had.
But now there are other problems occuring because ofxboxdrv
.Because xboxdrv creates a virtual gamepad, RR does not use it at first place.
So I hat to switch the controller in RR.Another problem is the hotkey button. While the buttons seems to be mapped correctly in RR it does not work right.
Pressing B, START, X directly uses the hotkeys instead of the normal button press.
I was able to solve this after setting the hotkey button again in RR.@mediamogul Like you already mentioned. It makes the whole configuration more complicated. Always have to remeber or make a note of it how
xboxdrv
was configured :)I will search on another solution without the use of
xboxdrv
. -
@xadox said in Configure 2 identical controllers differently:
I will search on another solution without the use of xboxdrv.
If you find anything, please post back. I'm always interested in alternatives to these types of problems.
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.