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

Add support for Keychron HE keyboards #307

Open
wants to merge 26 commits into
base: master
Choose a base branch
from

Conversation

Cryowatt
Copy link

Adding a new vendor ID for Keychron keyboards.

This should cover the K2, Q1, Q2, Q3, Q4, Q5 and Q6 HE models that have the Gamepad Analog feature.

lbschenkel and others added 26 commits January 5, 2025 20:04
8BitDo Pro 2 Wired Controller shares the same USB identifier
(2dc8:3106) as a different device, so amend name to reflect that and
reduce confusion as the user might think the controller was misdetected.

I have personally tested it and I can confirm that Pro 2 Wired will also
not work in XTYPE_XBOXONE mode (buton presses won't register), therefore
XTYPE_XBOX360 remains appropriate.

Signed-off-by: Leonardo Brondani Schenkel <[email protected]>
I found that my controller wasn't working with this driver.  The LED would light up and it could rumble but was not registering any button presses or joystick movements.  I suspected the problem might be that it was not being sent some required init packet so I tried sending the packets being used in xboxone_init_packets and found that sending xboxone_pdp_auth got the controller working.  At least for my controller xboxone_pdp_led_on was not strictly necessary but I decided to follow the same pattern used by the other two controllers.
Signed-off-by: Daniel Tobias <[email protected]>
Signed-off-by: Jonathan <[email protected]>
Signed-off-by: Matt Sturgeon <[email protected]>
This allows to turn off the pad without having to release the Xbox (mode) button

Signed-off-by: Davide Garberi <[email protected]>
This controller is a "Series S|X": it has the "share" button below the
big Xbox button. However, it reports the status of that button in a
different offset than the official controller.

The button is still recognized by official Microsoft driver in Windows,
so it looks like that both offsets are used in the wild.

Signed-off-by: Leonardo Brondani Schenkel <[email protected]>
Many knockoff brands emulating the XBOX 360 controller do not properly
send data unless configured correctly. Examples include the Gamesir G3w
and the Fantech GP11 Shooter.

Protocol inspection of communication with other operating systems
reveals a sequence of control messages that can be used to initialize
the controllers sufficiently to send proper data.

Some of these controllers only require one and may break with further,
some may require all three. This change adds a quirks field that allows
specifying these initialization packets.

Note that it also removes an unused field from the controller type table.

Signed-off-by: Darvin Delgado <[email protected]>
Signed-off-by: Vicki Pfau <[email protected]>
I've added the DeviceID of a very popular Xbox 360 Wireless Receiver.

Although it mimics the Microsoft's VendorID, it is in fact a clone. Taking into account that the original Microsoft Receiver is not being manufactured anymore, this drive can solve dpad issues encontered by those who still use the original 360 Wireless controller but are using a receiver clone.

Signed-off-by: Nilton Perim Neto [email protected]
@Cryowatt Cryowatt closed this Jan 12, 2025
@Cryowatt Cryowatt reopened this Jan 12, 2025
@Cryowatt
Copy link
Author

Ignore the brief closure, thought it was broken for a second

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

Successfully merging this pull request may close these issues.