Skip to content

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

@ianliu

Description

@ianliu

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:

Details
======================================================
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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions