TX2-compatible gaming racing steering wheel & pedals?

For an automotive application, I’d like to connect a steering wheel and set of pedals to my Jetson TX2, probably via USB (but maybe Bluetooth), so that I can “drive” my virtual car. Most racing wheels for gaming these days seem to offer force feedback, which I don’t need particularly, but I guess it could be nice if it works, or at least doesn’t do anything distracting and strange.

I’ve got slightly mixed messages searching the web for Ubuntu 16.04 supported racing wheels in general, and haven’t found anything about Jetson use at all. Apologies if this has been asked before and I failed to find it here.

Does anyone have any recommendations for a wheel + pedals set that is known to work with Jetson TX2, and/or any tips on additional setup or utilities required to be able to access the control states in my own program?

I did find this about a Linux utility for interfacing with Logitech wheels: https://steamcommunity.com/sharedfiles/filedetails/?id=142372419

Thanks in advance for any leads!

The USB gamepad/joystick/HID drivers in Ubuntu generally support most modern wheels/pedals, because they are by and large vanilla “HID” devices.

However, you may need to look them up and enable them in the kernel configuration file (make menuconfig) and re-build the kernel/modules and re-flash the board to actually enable them.

If you really want to know, buy from Amazon or another store with a good return policy, or take your laptop to Best Buy or a similar store and test actual-ubuntu with the actual-device.

Thanks snarky – I’ll bear in mind your tips about having to enable support in the kernel.

I’ve gambled now that the Logitech G27 is a good bet, though it’s only available second hand, based on that steamcommunity link I started with which said “Tested on… Ubuntu 13.04 (x86) Ubuntu 12.04 LTS (x64)”.

Its replacement, the G29 (or 920) sounds like it needs a kernel upgrade according to https://www.reddit.com/r/linux_gaming/comments/6j7qs5/how_is_steering_wheel_support_in_linux/ and http://burning-midnight.blogspot.co.uk/2017/11/logitech-g920-steering-wheel-on-linux.html . So I thought I was risking too much pain trying that, although it is cheaper new than the G27 is second hand on Amazon at least!

I’ll endeavour to report back here once I’ve got hold of the thing and tried it out, thanks again.

I promised I would report back, so here goes. I bought a second-hand Logitech G27 because of the reports in some places that the newer G29 (aka 920) wouldn’t work with kernel version 4.4, but that might have been unnecessary. It would have been cheaper to buy a new G29. Also the gear shifter didn’t work in my particular G27 (even under Windows) unfortunately. I dare say the G29 might have worked.

So on my Jetson TX2 with JetPack 3.2, here’s what worked and didn’t work:

o I didn’t make any kernel changes

o fftest didn’t work except for a tiny nudge when I did:
$ sudo fftest /dev/input/event5

o ffmvforce didn’t seem to do anything

o The ltwheelconfig utility from https://github.com/TripleSpeeder/LTWheelConf:

  1. $ sudo apt-get install libusb-1.0.0-dev (and non -dev version?) required to build
  2. Had to move -l$(LIBS) to end of gcc line in Makefile
  3. Trying to use --autocentre command didn’t work, nothing happened
  4. Doing reset command did turn on force autocentering on the wheel! Like this:
    $ ./ltwheelconfig --wheel G27 –x

o Very useful example code from https://gist.github.com/rdb/8864666 showed me (in Python) how to read /dev/input/js0, which helped me enumerate which axes (continuous analogue inputs) and buttons (digital inputs) mapped to what with my wheel. Then I could write my own C++ code which read from /dev/input/js0 to read those inputs successfully in the same way.

o Useful documentation on the events generated by wheel movement (and synthetic events created initially on first opening the device) at https://www.kernel.org/doc/Documentation/input/joystick-api.txt

o ffcfstress utility did work, making my wheel turn backwards and forwards – so I found the source code for that invaluable in understanding how I could make my wheel turn (with autocentering turned off, to avoid a fight between two types of force regime).
$ sudo ffcfstress /dev/input/event5

o Sometimes my wheel wouldn’t turn when my program asked a force to be applied, for no obvious reason. I think it became reliable when I changed the setting in source code I based on ffcfstress to:
stop_and_play = 1
so that it cancelled the previous “effect” each time I wanted the force updated.

Hope that’s useful to anyone working with a steering wheel in future.

Great! Thanks for sharing.