Giter Site home page Giter Site logo

ltwheelconf's People

Contributors

triplespeeder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ltwheelconf's Issues

make Error

Hello,
I'm using Linux Mint 12

When I use "make" I get the following error:

gcc -Wall -c main.c
In file included from main.c:30:0:
wheelfunctions.h:24:31: fatal error: libusb-1.0/libusb.h: No such file or directory
compilation terminated.
make: *** [main.o] Error 1

So I thought I needed to install the libusb-1.0.0 dev (since libsusb-1.0.0 is already installed), but then I get the following error:

gcc -Wall -c main.c
main.c: In function ‘main’:
main.c:216:31: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
gcc -Wall -c wheelfunctions.c
gcc -Wall -c wheels.c
gcc -Wall -lusb-1.0 -g3 -o ltwheelconf main.o wheelfunctions.o wheels.o
main.o: In function main': main.c:(.text+0x2c2): undefined reference tolibusb_init'
main.c:(.text+0x2dc): undefined reference to libusb_set_debug' main.c:(.text+0x5d0): undefined reference tolibusb_exit'
wheelfunctions.o: In function list_devices': wheelfunctions.c:(.text+0x1f3): undefined reference tolibusb_open_device_with_vid_pid'
wheelfunctions.c:(.text+0x217): undefined reference to libusb_get_device' wheelfunctions.c:(.text+0x245): undefined reference tolibusb_get_device_descriptor'
wheelfunctions.c:(.text+0x284): undefined reference to libusb_get_string_descriptor_ascii' wheelfunctions.c:(.text+0x293): undefined reference tolibusb_get_device_address'
wheelfunctions.c:(.text+0x2a5): undefined reference to libusb_get_bus_number' wheelfunctions.c:(.text+0x310): undefined reference tolibusb_close'
wheelfunctions.o: In function send_command': wheelfunctions.c:(.text+0x3bb): undefined reference tolibusb_detach_kernel_driver'
wheelfunctions.c:(.text+0x3f2): undefined reference to libusb_claim_interface' wheelfunctions.c:(.text+0x4b5): undefined reference tolibusb_interrupt_transfer'
wheelfunctions.c:(.text+0x504): undefined reference to libusb_release_interface' wheelfunctions.c:(.text+0x544): undefined reference tolibusb_attach_kernel_driver'
wheelfunctions.o: In function set_native_mode': wheelfunctions.c:(.text+0x5f7): undefined reference tolibusb_open_device_with_vid_pid'
wheelfunctions.c:(.text+0x64a): undefined reference to libusb_open_device_with_vid_pid' wheelfunctions.c:(.text+0x75f): undefined reference tolibusb_open_device_with_vid_pid'
wheelfunctions.o: In function set_range': wheelfunctions.c:(.text+0x894): undefined reference tolibusb_open_device_with_vid_pid'
wheelfunctions.o: In function set_autocenter': wheelfunctions.c:(.text+0x9d8): undefined reference tolibusb_open_device_with_vid_pid'
wheelfunctions.o:wheelfunctions.c:(.text+0xd40): more undefined references to libusb_open_device_with_vid_pid' follow wheelfunctions.o: In functionreset_wheel':
wheelfunctions.c:(.text+0xd7e): undefined reference to `libusb_reset_device'
collect2: ld returned 1 exit status
make: *** [ltwheelconf] Error 1

Can you give me any advice?

Thanks

Please provide support to G29

$ dmesg
[ 495.344130] usb 1-5.2: new full-speed USB device number 6 using xhci_hcd
[ 495.446456] usb 1-5.2: New USB device found, idVendor=046d, idProduct=c24f
[ 495.446461] usb 1-5.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 495.446464] usb 1-5.2: Product: G29 Driving Force Racing Wheel
[ 495.446466] usb 1-5.2: Manufacturer: Logitech
[ 495.448283] input: Logitech G29 Driving Force Racing Wheel as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5.2/1-5.2:1.0/0003:046D:C24F.0008/input/input21
[ 495.504509] logitech 0003:046D:C24F.0008: input,hidraw2: USB HID v1.11 Joystick [Logitech G29 Driving Force Racing Wheel] on usb-0000:00:14.0-5.2/input0
[ 495.504786] logitech 0003:046D:C24F.0008: Force feedback support for Logitech Gaming Wheels

$ sudo ltwheelconf --list
Scanning for "Driving Force":
Scanning for "Momo Racing":
Scanning for "Momo Force":
Scanning for "Driving Force Pro":
Scanning for "G25":
Scanning for "Driving Force GT":
Scanning for "G27":
Found 0 devices.

Ubuntu 16.10 - Logitech G25

Hello,

This solution is not working any more for Logitech G25, since the last Ubuntu changes also changed the behavior of the kernel.

Is there another solution?

Best Regards,
gxgung

Current status

I see that the README says that most of this work has made it's way into the kernel. In that case how would one go about configuring a wheel in say kernel 4.x+? I would assume it would still need some userpsace utilities.

Doesn't work with Logitech Driving Force GT

I'm able to switch the wheel into native mode with this tool so I get at least 900 degree and proper clutch support but the tool isn't setting range and force feedback (autocenter). I tried this command:

$ ltwheelconf --wheel DFGT --nativemode --autocenter 100 --rampspeed 1 --range 688
Found a Driving Force GT already in native mode.
Wheel rotation range of Driving Force GT is now set to 200 degrees.
Autocenter for Driving Force GT is now set to 100 with rampspeed 1.

When I start a game which supports wheels then the wheel is still operating with 900 degree range and there is no autocentering and no force feedback at all.

unneccesary driver re-attaching

For each Logitech-specifc command that requires direct communication with the device few steps need to be done:

  • detach kernel driver
  • claim USB device
  • send command string(s)
  • release USB device
  • attach kernel driver

When ltwheelconf is called with multiple commands at once, for each command the steps above are done. It would be better to collect all cmd strings to send and then only once do the detach/attach driver stuff.

Example:
$# sudo ltwheelconf -wheel G25 --range 900 --autocenter 0

Currently for both commands (setting range and setting autocenter force) the above sequence is executed. With the improved implementation only once the kernel driver would be detached, then both commands for range and autocenter would be sent and then the kerneldriver attached again.

automatically detect the connected wheel

Currently ltwheelconf requires parameter --wheel to specify which wheel is connected. This information is used to determine which commands to send to the wheel to switch to native mode.
The Windows driver does some magic to automatically detect which device is connected, so ltwheelconf should also be able to do that.

This would ease also integration into udev so there could be just one rule "When any logitech wheel is detected switch it into native mode", regardless of which device it actually is.

ltwheelconf sends 8byte commands instead of 7

Logitech drivers always send 7 Bytes for each command, while current ltwheelconf sends 8 bytes. Simon reported that the Wii wheel crashes when receiving more than 7 bytes in a command.
=> Code needs to be changed to only send 7 bytes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.