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

Added support for Logitech G923 #37

Closed

Conversation

ZRtmWrJqXcjbqBLIMBYMCeUw
Copy link
Contributor

@ZRtmWrJqXcjbqBLIMBYMCeUw ZRtmWrJqXcjbqBLIMBYMCeUw commented Oct 4, 2020

Added USB ID definitions and input event codes specific to the G923.
Also added some null-checking to help with testing new wheels in the future.

This can be left as a work-in-progress until I get the G923 Linux drivers working. See issue #36.

Added USB ID definitions and input event codes specific to the G923.
Also added some null-checking to help with testing new wheels in the
future.
@berarma
Copy link
Owner

berarma commented Oct 5, 2020

That's cool but without kernel support it won't work. Are you already working on a kernel patch?

@ZRtmWrJqXcjbqBLIMBYMCeUw
Copy link
Contributor Author

Yes, I am. I am unsure how far I will get due to my general lack of knowledge. I will update here if/when a kernel patch is available.

@berarma
Copy link
Owner

berarma commented Oct 5, 2020

I wrote a modified out-of-tree module from hid-logitech at https://github.com/berarma/new-lg4ff. Maybe you can do something similar. You can convert hid-logitech-hidpp to an out-of-tree module, then modify it and test it. The Linux Input Mailing List is the place to send the patch. Maybe you can find more help there.

@ZRtmWrJqXcjbqBLIMBYMCeUw
Copy link
Contributor Author

Thanks, this should help a lot. I will do what I can.

P.S. With the code in this pull request, the Oversteer app is able to detect the G923 correctly and display all button presses correctly. However, the issue is that turning the steering wheel, pressing on any of the pedals, and shifting (with some entry-level Logitech shifter) are all not detected.

@ZRtmWrJqXcjbqBLIMBYMCeUw
Copy link
Contributor Author

ZRtmWrJqXcjbqBLIMBYMCeUw commented Oct 11, 2020

If you do not mind, I will be shamelessly linking a gist I have created for tracking my progress on the kernel driver:
https://gist.github.com/ZRtmWrJqXcjbqBLIMBYMCeUw/1d6bd8acca9e749edb6572000def5cc0

Replaced with project:
https://github.com/ZRtmWrJqXcjbqBLIMBYMCeUw/Logitech-G923-Linux-Kernel-Driver

Hopefully putting it here will make it easier to find.

@berarma
Copy link
Owner

berarma commented Oct 13, 2020

If you do not mind, I will be shamelessly linking a gist I have created for tracking my progress on the kernel driver:
https://gist.github.com/ZRtmWrJqXcjbqBLIMBYMCeUw/1d6bd8acca9e749edb6572000def5cc0

Hopefully putting it here will make it easier to find.

That's perfectly fine, anything that helps. I think creating a project with whatever you have, even if it was just an empty template would help.

@ZRtmWrJqXcjbqBLIMBYMCeUw
Copy link
Contributor Author

Created project and updated previous comment, link.

@meowthink
Copy link

meowthink commented Sep 12, 2021

Some conversions are missing

diff --git a/oversteer/device.py b/oversteer/device.py
index 1229682..fe2e236 100644
--- a/oversteer/device.py
+++ b/oversteer/device.py
@@ -363,9 +363,9 @@ class Device:
             if event.code == ecodes.ABS_X:
                 if self.usb_id in [self.device_manager.LG_WFG, self.device_manager.LG_WFFG]:
                     event.value = event.value * 64
-                elif self.usb_id not in [self.device_manager.LG_G29, self.device_manager.TM_T300RS, self.device_manager.TM_T500RS] and self.vendor_id != self.device_manager.VENDOR_FANATEC:
+                elif self.usb_id not in [self.device_manager.LG_G923, self.device_manager.LG_G29, self.device_manager.TM_T300RS, self.device_manager.TM_T500RS] and self.vendor_id != self.device_manager.VENDOR_FANATEC:
                     event.value = event.value * 4
-            elif self.usb_id in [self.device_manager.LG_G25, self.device_manager.LG_G27, self.device_manager.LG_G29, self.device_manager.TM_T300RS, self.device_manager.TM_T500RS]:
+            elif self.usb_id in [self.device_manager.LG_G923, self.device_manager.LG_G25, self.device_manager.LG_G27, self.device_manager.LG_G29, self.device_manager.TM_T300RS, self.device_manager.TM_T500RS]:
                 if event.code == ecodes.ABS_Y:
                     event.code = ecodes.ABS_RZ
                 elif event.code == ecodes.ABS_Z:

@berarma
Copy link
Owner

berarma commented Sep 12, 2021

Which driver did you use?

@meowthink
Copy link

Which driver did you use?

Thank you all here for your fantastic work.

My comment is nothing related to the driver but this pr. Driver is another pr: berarma/new-lg4ff#50

@ydallilar
Copy link

See ZRtmWrJqXcjbqBLIMBYMCeUw#1.

Pedals and udev rules fixes.
oversteer/gui.py Outdated Show resolved Hide resolved
The G923 appears to use the same button codes as the G29 and remapping
the button codes is not required.
@ZRtmWrJqXcjbqBLIMBYMCeUw ZRtmWrJqXcjbqBLIMBYMCeUw marked this pull request as ready for review September 20, 2021 18:29
@berarma
Copy link
Owner

berarma commented Oct 5, 2021

This has been merged. Thank you!

@berarma berarma closed this Oct 5, 2021
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.

None yet

4 participants