Thrustmaster Rudder Control System (RCS) mods, Part 2 - Converting to USB using Arduino and Unojoy

Note: This is incomplete, but it's been saved as a draft since 2015. Since it is unlikely that I will ever finish this I figured it'd be better to post something incomplete rather than nothing at all.

The following two paragraphs explain my thought process and why I chose the Arduino board(s) that I did. It can be skipped, the only two important things that are mentioned is (1) A Pro Micro may be the bettor option because of its smaller size and (2) if you use an Arduino Uno, make sure it has the ATmega16u2/ATmega8u2 and not a CH FTDI chip.

With the hardware mods done, I moved onto the interface side of things. While doing research, I found the LeoBodnar mentioned often, so I checked it out. The shipped price of the board was £31-£38  (~$48-$58). With me trying to keep my total cost for the project around $50, I quickly determined it was not the option for me.

I've tinkered with Arduino boards a few times before so I started looking in the direction. The first thing that came to mind was the Teensy board. I've come across it in the past knew it had HID/Joystick support. A quick search led me to this page. I felt like the Teensy board would be the best bet, but it was going to cost ~$30 which would push me over budget. I know that you can acquire dirt cheap Ardunio clones off ebay, so I started searching if any of the standard board could do what I want. I came across this post on Darran's blog, skimmed it over and found out that the Uno board could be flashed as a HID device fairly easily so I then ordered an Arduino Uno off Amazon. One thing to note on the Uno's, the ATmega8u2/16u2 is the chip that can be reprogrammed from serial>usb to HID>usb. A lot of the dirt cheap Uno clones will change this chip out for a CH340 as they cost less. The CH340 will not work for a HID device. I ordered a SainSmart branded Uno, they use the ATmega chips. I've gotten the Uno hooked up and everything seems to work fine, but the chip is too big to hide anywhere besides under a pedal. For this reason, I am ordering an Arduino Pro Micro and will be using it to replace the Uno.


If you've skipped the introduction, start reading here....



I went back to Darran's blog and revisted this post. After looking closer, I felt like it did not cover everything I was looking for so another quick search led me to UnoJoy. UnoJoy is an Arduino library that will turn your Uno/Leonardo/ProMicro into a PS3, Mac, and Windows compatible USB gamepad. My own version of the code that I will provide, will most likely break PS3 compatibility in an effort to make it more compatible with Windows, but this is not required.


First, I connected some wire to my pedal pots. On my particular pots, while looking at the back, the negative is on the left, data in the middle, and positive on the right. It is also the same for the rudder potetiometer, so this may be standard, but you should verify your own. I had accidentally swapped the positive and negative around on one and it started smoking, which I am sure is not good. The wire I used was some leftover I had from building my 3D printer, but just about any wire would do. If I didn't have this cable left over, I would have used some solid Cat5.

<photo of wiring>




After we wire up the two pedal brake pots, we need to rewire the rudder pot. If you flip the unit upside down, you should see where the gameport wire is entering the side of the center medal support bar and leads under a plastic cover. Just pull up on this plastic over to remove it. It is not glued/screwed/clipped in. After that's off, remove the two existing wires by heating up the pot leads while gently pulling on the wire. Once that's removed, go ahead and rewire the pot, but be sure to connect all 3 wires this time.



After that is finished, it is time to wire up to the Arduino board itself. Take all the positive leads from the 3 pots and connect them to the +5v on the Arduino. Take all the blag negative leads and connect them to any of the ground spots on the board. Now the center leads need to be connected to their own analog ports on the board. On my setup, the left brake went to A0, the right brake to A1, and the rudder to A2. Later on when we upload the demo sketch to the board, Left brake will become X, Right will become Y, and the Rudder will become Z.

Uno
Pro Micro















Now it's time for the software mods, You will need the following:


In this post, I am not going to cover the Arduino IDE setup in detal. If you have never used Arduino before, I recommend reading this tutorial before continuing. It will cover the installation and setup needed.



Comments

Popular Posts