Re: [PATCH v1] input: xpad: Add support for BETOP BTP-KP50B/C, controller's wireless mode

From: Shengyu Qu

Date: Wed Feb 11 2026 - 01:54:03 EST


Hi,

Seems your patch is not working. Tested on both KP50B and KP50C. Log attached.

Best regards,
Shengyu

在 2026/2/10 13:53, liushuyu 写道:
Hi there,
Hi,
if I recall, this logic abuses some HID descriptor logic to cycle the
mode depending on the OS. The arch wiki has a potential fix for
certain controllers.

This makes you end up in Android mode since linux kernel. Nintendo
uses a BSD-based kernel, and the Windows NT kernel is different. So by
breaking the protocol in different ways they get it to cycle.

Antheas

I sent a patch to the linux-input list a few months ago to work around
this issue with the BETOP/Beitong controllers:
https://lore.kernel.org/linux-input/20260102030154.197749-3-liushuyu@xxxxxxx/.
It would be appreciated if anyone in the thread could verify if my
previous workaround works for their BETOP/Beitong controllers as well.

Thanks,
Zixing


[12892.612050] usb 1-5: new high-speed USB device number 25 using xhci_hcd
[12892.736452] usb 1-5: New USB device found, idVendor=1a86, idProduct=8091, bcdDevice=13.10
[12892.736457] usb 1-5: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[12892.736458] usb 1-5: Product: USB HUB
[12892.737405] hub 1-5:1.0: USB hub found
[12892.737424] hub 1-5:1.0: 4 ports detected
[12893.017043] usb 1-5.1: new full-speed USB device number 26 using xhci_hcd
[12893.027334] usb 1-6: USB disconnect, device number 24
[12893.102809] usb 1-5.1: New USB device found, idVendor=20bc, idProduct=5133, bcdDevice= 1.00
[12893.102820] usb 1-5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12893.102823] usb 1-5.1: Product: BTP-KP50B XINPUT WIRED
[12893.102826] usb 1-5.1: Manufacturer: BEITONG
[12893.112766] input: Beitong KP50B Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/input/input57
[12893.113861] input: BEITONG BTP-KP50B XINPUT WIRED Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.1/0003:20BC:5133.0017/input/input58
[12893.204328] input: BEITONG BTP-KP50B XINPUT WIRED as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.1/0003:20BC:5133.0017/input/input59
[12893.204487] hid-generic 0003:20BC:5133.0017: input,hiddev96,hidraw0: USB HID v1.11 Keyboard [BEITONG BTP-KP50B XINPUT WIRED] on usb-0000:00:14.0-5.1/input1
[12893.280105] usb 1-5.2: new full-speed USB device number 27 using xhci_hcd
[12893.367430] usb 1-5.2: New USB device found, idVendor=0517, idProduct=5350, bcdDevice= 0.00
[12893.367441] usb 1-5.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12893.367445] usb 1-5.2: Product: BTPRO Screen
[12893.367447] usb 1-5.2: Manufacturer: Xingzj
[12893.373731] hid-generic 0003:0517:5350.0018: hiddev99,hidraw7: USB HID v1.10 Device [Xingzj BTPRO Screen] on usb-0000:00:14.0-5.2/input0
[12893.479187] usb 1-6: new full-speed USB device number 28 using xhci_hcd
[12893.603837] usb 1-6: New USB device found, idVendor=20dd, idProduct=5134, bcdDevice= 1.00
[12893.603848] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12893.603851] usb 1-6: Product: KP50B DONGLE
[12893.603854] usb 1-6: Manufacturer: BEITONG
[12893.606407] hid-generic 0003:20DD:5134.0019: hiddev100,hidraw8: USB HID v1.11 Device [BEITONG KP50B DONGLE] on usb-0000:00:14.0-6/input0
[12894.170005] usb 1-5.1: USB disconnect, device number 26
[12894.496092] usb 1-5.1: new full-speed USB device number 29 using xhci_hcd
[12894.582050] usb 1-5.1: New USB device found, idVendor=20bc, idProduct=5133, bcdDevice= 1.00
[12894.582060] usb 1-5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12894.582063] usb 1-5.1: Product: BTP-KP50B XINPUT WIRED
[12894.582066] usb 1-5.1: Manufacturer: BEITONG
[12894.592454] input: Beitong KP50B Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/input/input60
[12894.593621] input: BEITONG BTP-KP50B XINPUT WIRED Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.1/0003:20BC:5133.001A/input/input61
[12894.685250] input: BEITONG BTP-KP50B XINPUT WIRED as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.1/0003:20BC:5133.001A/input/input62
[12894.685408] hid-generic 0003:20BC:5133.001A: input,hiddev96,hidraw0: USB HID v1.11 Keyboard [BEITONG BTP-KP50B XINPUT WIRED] on usb-0000:00:14.0-5.1/input1
[12895.706017] usb 1-5.1: USB disconnect, device number 29
[12896.032019] usb 1-5.1: new full-speed USB device number 30 using xhci_hcd
[12896.118721] usb 1-5.1: New USB device found, idVendor=20bc, idProduct=5133, bcdDevice= 1.00
[12896.118732] usb 1-5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12896.118736] usb 1-5.1: Product: BTP-KP50B XINPUT WIRED
[12896.118739] usb 1-5.1: Manufacturer: BEITONG
[12896.129259] input: Beitong KP50B Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/input/input63
[12896.130423] input: BEITONG BTP-KP50B XINPUT WIRED Keyboard as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.1/0003:20BC:5133.001B/input/input64
[12896.214259] input: BEITONG BTP-KP50B XINPUT WIRED as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.1/0003:20BC:5133.001B/input/input65
[12896.214487] hid-generic 0003:20BC:5133.001B: input,hiddev96,hidraw0: USB HID v1.11 Keyboard [BEITONG BTP-KP50B XINPUT WIRED] on usb-0000:00:14.0-5.1/input1
[12897.242015] usb 1-5.1: USB disconnect, device number 30
[12897.530076] usb 1-5.1: new full-speed USB device number 31 using xhci_hcd
[12897.615068] usb 1-5.1: New USB device found, idVendor=057e, idProduct=2009, bcdDevice= 2.00
[12897.615080] usb 1-5.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[12897.615087] usb 1-5.1: Product: BTP-KP50B NS WIRED
[12897.615091] usb 1-5.1: Manufacturer: BEITONG
[12897.621902] nintendo 0003:057E:2009.001C: hidraw0: USB HID v81.11 Joystick [BEITONG BTP-KP50B NS WIRED] on usb-0000:00:14.0-5.1/input0
[12899.736001] nintendo 0003:057E:2009.001C: Failed to set baudrate (ret=-110), continuing anyway
[12899.947146] nintendo 0003:057E:2009.001C: controller MAC = 80:E4:FE:1C:52:61
[12899.952085] nintendo 0003:057E:2009.001C: using factory cal for left stick
[12899.954131] nintendo 0003:057E:2009.001C: using factory cal for right stick
[12899.960080] nintendo 0003:057E:2009.001C: using factory cal for IMU
[12899.962142] nintendo 0003:057E:2009.001C: inaccurate IMU divisors (6)
[12899.968081] nintendo 0003:057E:2009.001C: assigned player 1 led pattern
[12899.972241] input: BEITONG BTP-KP50B NS WIRED as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/0003:057E:2009.001C/input/input66
[12899.972446] input: BEITONG BTP-KP50B NS WIRED (IMU) as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.1/1-5.1:1.0/0003:057E:2009.001C/input/input67

Attachment: OpenPGP_0xE3520CC91929C8E7.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature