XInput is an API that is used by applications to interface with the Xbox 360 Controller for Windows. The 360 controller became somewhat of a “standard” PC gamepad, and thus many games and applications support the XInput standard.
[James] is working on an entry for a robotics competition, and wanted a controller to use with their PC that was more suited to their build. They took an RC controller, and converted it to work with XInput instead.
The controller in question is the JJRC Q35-01, a trigger-type RC controller available for under $20. The conversion is executed neatly, with the original STM microcontroller being removed from the board, and the PCB traces instead being connected to a Teensy 3.5 which takes over running the show.
The conversion is remarkably complete, with the team not stopping at just reading the buttons and steering potentiometer. A USB logic analyzer was used to figure out how to control the LCD, and a calibration mode implemented just in case.
[James] has shared the work on Github so it’s reproducible for the average maker. We’ve seen plenty of builds in this space, like this tilt controller from [Electronoobs]. Video after the break.
in the past iv just made a base station that grabs all the pwm from a reciever, and dumps it out on a serial port. i then just had a console app that translated those to the respective axis’s of Xinput. way easier, and didnt have to mod my remote
For the intended use (FRC robot controller) wireless devices are not allowed pet the rules.
You can still grab the pwm before it hits the transmitter and decode it.
Some rc has a slave port that has the pre amp output, for using on simulators and training
This one doesn’t have any outputs for training.
And if it did, that would still require developing custom middleware, that in the end would have less functionality. E.g. it has rumble support, and can easily add 4 more analog axis and 8 more digital buttons That would not be possible if sniffing the output of an existing RC controller. Rumble support in an RC form factor controller was a primary motivation for this project.
Plus for it to be legal in our competition, we’d have to disable the RF transmission somehow ( likely would need to remove the RF ic and/or antenna), so back where we started.
The only pro to going the route described is if you want to control an RC car with the controller again. I get that. Many of these controllers are very expensive. This particular model is very inexpensive. We also don’t own an RC car. We do own many 200lb robots that are controlled from USB joysticks plugged into computers over WiFi…