All Projects → scarburato → hid-tminit

scarburato / hid-tminit

Licence: GPL-2.0 license
Linux driver to properly initialize some Thrustmaster Wheels

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to hid-tminit

FPGA-USB-Device
FPGA-based USB-device controller to implement USB-CDC, USB-HID, etc.
Stars: ✭ 29 (+26.09%)
Mutual labels:  usb, usb-hid
Tinyusb
An open source cross-platform USB stack for embedded system
Stars: ✭ 2,257 (+9713.04%)
Mutual labels:  usb, usb-hid
pyrfidhid
Python library to control Chinese USB HID 125Khz RFID Reader/Writer
Stars: ✭ 104 (+352.17%)
Mutual labels:  usb, usb-hid
RaspberryPi-Joystick
A virtual HID USB joystick created using Raspberry Pi
Stars: ✭ 73 (+217.39%)
Mutual labels:  usb, joystick
8814au
Linux Driver for USB WiFi Adapters that are based on the RTL8814AU Chipset
Stars: ✭ 283 (+1130.43%)
Mutual labels:  usb, linux-driver
qtpy-knob
QT Py Media Knob using rotary encoder & neopixel ring
Stars: ✭ 49 (+113.04%)
Mutual labels:  usb, usb-hid
8821au-20210708
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets - v5.12.5.2
Stars: ✭ 40 (+73.91%)
Mutual labels:  usb, linux-driver
stm32 i2c to usb hid multitouch
i2c to usb hid multi touch with stm32
Stars: ✭ 55 (+139.13%)
Mutual labels:  usb, usb-hid
hid-tmff2
Linux kernel module for Thrustmaster T300RS and T248
Stars: ✭ 83 (+260.87%)
Mutual labels:  thrustmaster, usb-hid
awesome-webhid
Curated list of resources relating to the WebHID (Human Interface Device) API
Stars: ✭ 126 (+447.83%)
Mutual labels:  usb, usb-hid
8821au
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets
Stars: ✭ 67 (+191.3%)
Mutual labels:  usb, linux-driver
DualSenseWindows UE4
Unreal Engine 4 port of the Windows API for the PS5 DualSense controller created at Ohjurot/DualSense-Windows
Stars: ✭ 25 (+8.7%)
Mutual labels:  usb, usb-hid
CH55x USB CompositeDevice
USB Composite Device Demo (Keyboard, Custom HID and Massive Storage) using CH55x
Stars: ✭ 94 (+308.7%)
Mutual labels:  usb, usb-hid
CapableRobot USBHub Driver
www.crowdsupply.com/capable-robot-components/programmable-usb-hub
Stars: ✭ 17 (-26.09%)
Mutual labels:  usb
node-joystick
Linux Joystick module for NodeJS based on NodeBits original work
Stars: ✭ 25 (+8.7%)
Mutual labels:  joystick
kikpad
KiKPad : the Midiplus SmartPad reinvented !
Stars: ✭ 31 (+34.78%)
Mutual labels:  usb
opencv-python-inference-engine
Wrapper package for OpenCV with Inference Engine python bindings.
Stars: ✭ 32 (+39.13%)
Mutual labels:  wheel
USBHIDTerminal
USBHIDTerminal
Stars: ✭ 102 (+343.48%)
Mutual labels:  usb-hid
ESP32-USB-Soft-Host
An Arduino wrapper to @sdima1357's usb_soft_host esp-idf example
Stars: ✭ 119 (+417.39%)
Mutual labels:  usb
combatris
A "perfect" implementation of an old classic
Stars: ✭ 20 (-13.04%)
Mutual labels:  joystick

hid-tminit

Linux driver to properly initialize Thrustmaster Wheels, based on this driver written by Kimplul

When connected to the machine, the Thrustmaster wheels appear as a «generic» hid gamepad called Thrustmaster FFB Wheel.

When in this mode not every functionality of the wheel, like the force feedback, are available. To enable all functionalities of a Thrustmaster wheel we have to send to it a specific USB CONTROL request with a code different for each wheel.

This driver tries to understand which model of Thrustmaster wheel the generic Thrustmaster FFB Wheel really is and then sends the appropriate control code.

Wheels supported

You can check the table of wheels supported in hid-tminit.c, they are stored in the array th_wheels_infos[]

Recapitulatory table

This table may be outdated.

My new guess is the control packet with usb.setup.bRequest == 73, is suspiciously near the control packet used to switch the wheel mode and the response of the wheel seems to remain the same after the upgrade

Model Response bytes +6, +7
T150 (same both my and @Kimplul) 0x49002100000006030000000000000000 0x0603
T300 (@Kimplul) 0x49000301010006021300000005010000 0x0602
T300 (cap from Gitlab) 0x49002100000006020000000000000000 0x0602
T300 Ferrari Alcantara Edition 0x49000200010004021300000005010000 0x0402
TMX 0x4700410000000704 0x0704
T500 0x4700030000000200 0x0200

Original discussion

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].