Odroid N2+ with 2 dragonrise boards with the same id

Hello everyone,

First of all, I want to express my gratitude for the great work you’ve done. I’ve been using Emuelec 4.3 on my Odroid N2+ 2GB for over a year now. I’ve configured my arcade cabinet with custom lists, added images to showcase that lists, screenshots, shaders, and enjoyed fine-tuning every detail while revisiting some old games.

However, I’ve been facing issues with the arcade stick boards since the beginning. Occasionally, P1 swaps with P2, and when starting ES or exiting from a game to ES again, I receive multiple messages like “Dragonrise disconnected” and “Dragonrise connected,” which freeze the navigation for around 20 seconds. Additionally, connecting more gamepads sometimes causes ES to restart and displays even more messages of Dragonrise being connected and disconnected.

I’ve tried changing USB ports, but it didn’t solve the problem. After reading posts from others, I realized that both boards share the same ID. Unplugging one of them resolves the issue when adding more gamepads.

I’ve attempted a few Linux-related solutions, but my skills in that area are limited. I tried adding udev rules without a clear understanding of the process, and I also saw some people suggesting adding “usbhid.quirks=0×0079:0×0006:0×040” to the boot configuration, although I’m not sure where to test or add it. Another option I’m considering is getting a different arcade board with a different ID. I’ve even tested it with Emuelec 4.6, and the issue remains unresolved.

Here is my lsusb result:

Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 058: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
Bus 001 Device 004: ID 0583:2060 Padix Co., Ltd (Rockfire)
Bus 001 Device 040: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And here the devices

EmuELEC:~ # cat /proc/bus/input/devices
I: Bus=0010 Vendor=1b8e Product=0cec Version=0001
N: Name="cec_input"
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=3
B: KEY=1 0 0 10000000000000 0

I: Bus=0003 Vendor=0583 Product=2060 Version=0110
N: Name="USB,2-axis 8-button gamepad  "
P: Phys=usb-xhci-hcd.0.auto-1.2/input0
S: Sysfs=/devices/platform/ff500000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.2/1-1.2:1.0/0003:0583:2060.0002/input/input1
U: Uniq=
H: Handlers=event1 js0
B: PROP=0
B: EV=1b
B: KEY=ff00000000 0 0 0 0
B: ABS=3
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="meson-ir"
P: Phys=meson-ir/input0
S: Sysfs=/devices/platform/ff808040.meson-ir/rc/rc0/input14
U: Uniq=
H: Handlers=kbd event4
B: PROP=0
B: EV=100013
B: KEY=fff 0 4200108fc32e 237605100000000 0 700158000 419240004801 9e96c000000000 10000000
B: MSC=10

I: Bus=0003 Vendor=0079 Product=0006 Version=0110
N: Name="DragonRise inc.   Generic   USB  Joystick  "
P: Phys=usb-xhci-hcd.0.auto-1.1/input0
S: Sysfs=/devices/platform/ff500000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.1/1-1.1:1.0/0003:0079:0006.004E/input/input79
U: Uniq=
H: Handlers=event2 js1
B: PROP=0
B: EV=20001b
B: KEY=fff00000000 0 0 0 0
B: ABS=3002f
B: MSC=10
B: FF=107030000 0

I: Bus=0003 Vendor=0079 Product=0006 Version=0110
N: Name="DragonRise inc.   Generic   USB  Joystick  "
P: Phys=usb-xhci-hcd.0.auto-1.3/input0
S: Sysfs=/devices/platform/ff500000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.3/1-1.3:1.0/0003:0079:0006.004F/input/input80
U: Uniq=
H: Handlers=event3 js2
B: PROP=0
B: EV=20001b
B: KEY=fff00000000 0 0 0 0
B: ABS=3002f
B: MSC=10
B: FF=107030000 0

And here the shitty stuff I tried to set in the \emuelec\Configfiles\udev.rules.d\ folder (don’t be cruel, a lot of try and error without understanding anything)

ACTION=="add",  KERNEL=="js*", KERNELS=="1-1.1",   ATTRS{idVendor}=="0079", ATTRS{idProduct}=="0006", SYMLINK+="dragonrise_1"
ACTION=="add",  KERNEL=="js*", KERNELS=="1-1.3",   ATTRS{idVendor}=="0079", ATTRS{idProduct}=="0006", SYMLINK+="dragonrise_2"

Any suggestions or solutions would be greatly appreciated. Thank you in advance for your help!

Im not very good at technical help but controller profile issues was temporarily fixed in

4.6-TEST-07082022

Try that version and see how you get on

Thank you @kallabungo!
I tested it with the latest one, the 4.6 from Dec the 1st and the issue was still there. I will give a try to the 4.6 TEST, is this one?Release 4.6-TEST-07082022 · EmuELEC/EmuELEC-tests · GitHub
Is there any particular commit I should look at?

Apparently i was the only person to mention an issue with player profiles but Langerz created a fix which was included in the test build. For some reason the stable build doesn’t include it.
For me, title preview videos have no audio with the test version which is annoying and I’m unable to ssh in but the rest works so it was a sacrifice that had to be made.
I can’t help any further than that im afraid.

I tested it yesterday, and unfortunately, I encountered the same issue. When using 4 controllers, the hassle of changing the order and the continuous messages of ‘connected’ and ‘disconnected’ significantly lengthen the time between games and during the first start. Everything runs smoothly if I disconnect one of the two controllers with the same ID. At least I’m certain that I’ve isolated the issue, which appears to be due to both controllers having the same ID.

4.6_test

Here’s a video displaying the issue: it shows one of the gamepads disconnecting at the top left, followed by a reconnection. However, instead of a single message, it’s generating numerous messages repeatedly. You can view the video here: Dropbox - Emuelec_4.6_test.mp4 - Simplify your life

Thanks a lot for your help! I’ll keep trying different things whenever I find a spare moment.