Skip to content
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

8Bitdo Ultimate Controller doesn't work via Bluetooth on Linux #154

Open
ianliu opened this issue May 28, 2024 · 0 comments
Open

8Bitdo Ultimate Controller doesn't work via Bluetooth on Linux #154

ianliu opened this issue May 28, 2024 · 0 comments

Comments

@ianliu
Copy link

ianliu commented May 28, 2024

Sorry in advance if this isn't the right place to post these kind of issues, you can close if off-topic.

I've collected some data from the 8Bitdo Ultimate Controller hoping it could improve its functionality on Linux in the future.

So I've bought this controller and made sure the firmware was at its latest version. Here are some dmesg logs for the controller on my Arch Linux:

======================================================
After pairing the controller via Bluetooth:
- Doesn't create any /dev/input/js* devices
======================================================

[mai28 09:01] nintendo 0005:057E:2009.0009: unknown main item tag 0x0
[  +0,000299] nintendo 0005:057E:2009.0009: hidraw0: BLUETOOTH HID v80.01 Gamepad [Pro Controller] on c8:58:c0:d3:30:19
[  +0,012578] nintendo 0005:057E:2009.0009: controller MAC = E4:17:D8:37:BA:2E
[  +0,016774] nintendo 0005:057E:2009.0009: using factory cal for left stick
[  +0,023313] nintendo 0005:057E:2009.0009: using factory cal for right stick
[  +0,070065] nintendo 0005:057E:2009.0009: using factory cal for IMU
[  +0,156950] input: Pro Controller as /devices/virtual/misc/uhid/0005:057E:2009.0009/input/input30
[  +0,000179] input: Pro Controller (IMU) as /devices/virtual/misc/uhid/0005:057E:2009.0009/input/input31


======================================================
After connecting via USB cable:
- Creates a /dev/input/js0 device witch works with
  joystick on https://hardwaretester.com/gamepad
======================================================

[mai28 09:06] usb 1-2: new full-speed USB device number 13 using xhci_hcd
[  +0,146246] usb 1-2: New USB device found, idVendor=2dc8, idProduct=3106, bcdDevice= 1.14
[  +0,000016] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0,000006] usb 1-2: Product: 8BitDo Ultimate Controller
[  +0,000004] usb 1-2: Manufacturer: 8BitDo
[  +0,000004] usb 1-2: SerialNumber: 2eba37d817e4
[  +0,002803] input: 8BitDo Pro 2 Wired Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/input/input32
[  +0,057157] input input32: unable to receive magic message: -121


======================================================
After connecting the wifi dongle:
- Doesn't create any /dev/input/js* devices
- LED on controller keeps blinking (I guess it is trying to connect to the dongle)
======================================================

[mai28 09:13] usb 1-2: new full-speed USB device number 14 using xhci_hcd
[  +0,141656] usb 1-2: New USB device found, idVendor=057e, idProduct=2009, bcdDevice= 2.00
[  +0,000015] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0,000006] usb 1-2: Product: Pro Controller
[  +0,000005] usb 1-2: Manufacturer: Nintendo.Co.Ltd.
[  +0,000004] usb 1-2: SerialNumber: 000000000001
[  +0,004240] nintendo 0003:057E:2009.000A: hidraw6: USB HID v81.11 Joystick [Nintendo.Co.Ltd. Pro Controller] on usb-0000:00:14.0-2/input0
[  +0,347082] nintendo 0003:057E:2009.000A: controller MAC = 09:B4:0F:D8:17:E4
[  +0,023964] nintendo 0003:057E:2009.000A: using factory cal for left stick
[  +0,023984] nintendo 0003:057E:2009.000A: using factory cal for right stick
[  +0,072047] nintendo 0003:057E:2009.000A: using factory cal for IMU
[  +0,656960] nintendo 0003:057E:2009.000A: Failed to set home LED, skipping registration; ret=-110
[  +0,000323] input: Nintendo.Co.Ltd. Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:057E:2009.000A/input/input33
[  +0,000302] input: Nintendo.Co.Ltd. Pro Controller (IMU) as /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:057E:2009.000A/input/input34
[  +1,881914] usb 1-2: USB disconnect, device number 14
[  +1,254141] usb 1-2: new full-speed USB device number 15 using xhci_hcd
[  +0,144353] usb 1-2: New USB device found, idVendor=2dc8, idProduct=3106, bcdDevice= 1.14
[  +0,000014] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0,000007] usb 1-2: Product: Ultimate Wireless Controller
[  +0,000004] usb 1-2: Manufacturer: 8BitDo
[  +0,000004] usb 1-2: SerialNumber: 8ca55ad817e4
[  +0,002225] usb 1-2: can't set config #1, error -71
[  +0,000172] usb 1-2: USB disconnect, device number 15
[  +0,753144] usb 1-2: new full-speed USB device number 16 using xhci_hcd
[  +0,141336] usb 1-2: New USB device found, idVendor=2dc8, idProduct=3109, bcdDevice= 2.00
[  +0,000014] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0,000006] usb 1-2: Product: Ultimate Wireless Controller
[  +0,000005] usb 1-2: Manufacturer: 8BitDo
[  +0,000004] usb 1-2: SerialNumber: 8ca55ad817e4
[  +0,003560] hid-generic 0003:2DC8:3109.000B: hiddev96,hidraw6: USB HID v1.11 Device [8BitDo Ultimate Wireless Controller] on usb-0000:00:14.0-2/input0

And attached are the Bluetooth snooping logs from my android phone. The logs should contain communication packets between the controller and my phone while connected via BT.

I pressed all the buttons and fiddled with both joysticks and was able to parse the logs with Wireshark, but my knowledge about reverse engineering is too small to understand anything right now.

btsnoop_hci.log

Hope this is useful!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant