{"id":48600442,"url":"https://github.com/scarburato/t150_driver","last_synced_at":"2026-04-24T15:01:13.764Z","repository":{"id":37993007,"uuid":"253204880","full_name":"scarburato/t150_driver","owner":"scarburato","description":"Linux driver for Thrustmaster T150 Steering Wheel USB ","archived":false,"fork":false,"pushed_at":"2025-02-21T09:52:50.000Z","size":1784,"stargazers_count":112,"open_issues_count":2,"forks_count":16,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-21T10:38:10.509Z","etag":null,"topics":["driver","force-feedback","forcefeedback","gamepad","games","joystick","linux","linux-driver","steering-wheel","t150","thrustmaster","usb","wheel"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scarburato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-05T10:07:11.000Z","updated_at":"2025-02-21T09:52:55.000Z","dependencies_parsed_at":"2025-02-21T10:30:40.798Z","dependency_job_id":"ef83ac01-d478-4ace-85c8-facbd9389b8a","html_url":"https://github.com/scarburato/t150_driver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scarburato/t150_driver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarburato%2Ft150_driver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarburato%2Ft150_driver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarburato%2Ft150_driver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarburato%2Ft150_driver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scarburato","download_url":"https://codeload.github.com/scarburato/t150_driver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarburato%2Ft150_driver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32228437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["driver","force-feedback","forcefeedback","gamepad","games","joystick","linux","linux-driver","steering-wheel","t150","thrustmaster","usb","wheel"],"created_at":"2026-04-08T22:00:19.234Z","updated_at":"2026-04-24T15:01:13.758Z","avatar_url":"https://github.com/scarburato.png","language":"C","funding_links":[],"categories":["Hardware \u0026 Force Feedback"],"sub_categories":["WRC Rally"],"readme":"# Thrustmaster T150 and TMX Force Feedback Wheel Linux drivers\n**DISCLAMER**\n*This is not an official driver from Thrustmaster and is provided without any kind of warranty. Loading and using this driver is at your own risk; I don't take responsibility for kernel panics, devices bricked or any other kind of inconvenience*\n\n## Project status\n\n### What's working 👌\n+ All axis and buttons of the wheel are reported\n+ You can set the range of the T150 wheel from 270° to 1080°\n+ You can set the range of the TMX wheel from 270° to 900°\n+ You can set the return force of the wheel from 0% to 100%\n+ Force feedback (partially)\n  * You can set the global force feedback scale from 0% to 100%\n  * Settable gain `FF_GAIN`\n  * Periodic effects:  `FF_SINE`, `FF_SAW_UP` and `FF_SAW_DOWN`\n  * Constant effects:  `FF_CONSTANT`\n  * Condition effects: `FF_SPRING`\n  * Damper effects:    `FF_DAMPER`\n+ Firmware version is reported\n\n### What is missing 🚧\n- Reading the settings from the wheel\n- Force feedback (partially)\n- Force feedback settings\n- Firmware upgrades\n- Handling of range changes from the wheel\n\n### Switch the wheel from FFB to full T150\nSince kernel version 5.13, hid_thrustmaster automatically switch some thrustmaster devices into full mode. The T150 is covered by this driver. The TMX wheel does not have support in the hid_thrustmaster and requries either using [TMX-Driver](https://github.com/emtek995/TMX-driver) (kernel driver) or [tmdrv](https://github.com/her001/tmdrv) (python userspace driver) to intialize.\n\n## How to use the driver\n**For T150, always put the switch of your wheel to the `PS3` position before plug it into your machine!**\nFor the TMX, plug the wheel into your machine and load your preffered intialization driver. The mode switch will only be used to swap the clutch and accelerator pedals if using the T3PA-Pro in hangdown mode.\n\n\n### Setting up the wheel parameters\nYou can edit the settings of each wheel attached to the machine by writing the sysfs attributes usually found in the\nsubdirectories at `/sys/devices`. You can see in `dmesg` what path in /sys the input subsystem assigned to the wheel:\nfor example if you see `input: Thrustmaster T150 steering wheel as /devices/pci0000:00/0000:00:14.0/usb1/1-1/input/input27`\nthen the attributes will be located at `sys/devices/pci0000:00/0000:00:14.0/usb1/1-1/input/input27/device/`.\n\nThis table contains a summary of each attribute\n\n|Attribute          |Value                         |Description                                                           |\n|-------------------|------------------------------|----------------------------------------------------------------------|\n|`range`            |decimal from `270` to `1080`  |How far the wheel turns (TMX limited to 900)                          |\n|`autocenter`       |decimal from `0` to `65535`   |The force used to re-center the wheel                                 |\n|`enable_autocenter`|boolean `y` xor `n`           |Use the user defined return force or let the game handle it trough ffb|\n|`gain`             |decimal from `0` to `65535`   |Force feedback intensity. 0 no effects are reproduced                 |\n|`firmware_version` |decimal                       |Read only, the current firmware running on the wheel                  |\n\n### Custom defaults\nTo automatically set the wheel to some custom default settings when plugged you'll have to write a simple udev rule. In `/etc/udev/rules.d` create a text file called something like `99-t150-defaults.rules` and write a rule like this below. Refer to the output of `udevadm info --attribute-walk /sys/devices/${WHEEL_DEVICE_PATH}` in case rules from example below do not match.\n```\nSUBSYSTEM==\"hid\", ATTRS{driver}==\"hid-t150\", ATTR{range}=\"270\", ATTR{gain}=\"49150\"\n```\nThen run `udevadm control --reload` and `udevadm trigger` to re-load the rules.\nThe rule in the example should set the turning range to 270°.\n\n## How to install and load the driver\nYou can try to run `install.sh` as root, the script should: copy the udev rules and other files in their appropriate positions, build and install the DKMS modules and add them to the list of modules to be loaded at boot.\n\nTo check if the modules are loaded check the output of `lsmod | grep hid_t150`.\n\n### Manually\nCopy the udev rules into `/etc/udev/rules.d/` and reload the udev rules (or reboot)...\n\n#### Build the drivers\nFor a simple build: install all the required tools to compile (like `build-essential`, `linux-headers` etc...) and run\n```\nmake\n```\ninto the t150 folder. Now you can load the .ko file with `insmod` and unload with `rmmod`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscarburato%2Ft150_driver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscarburato%2Ft150_driver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscarburato%2Ft150_driver/lists"}