Console Compatible Thrustmaster Button Plates w/Arduino T500/TX/T300
10 10

70 posts in this topic

Breaking news!! I did it :D

First of all many thanks to Tara for the code a schematics, and to Seth for this thread and the encouragement.. So last Friday I finally got my Arduino Namo (tinny little sucker) and I had been reading and watching video tutorials about it, so I knew the basis: how to connect it to the pc, install drives, copy edit and load sketches, and how to make simple connections. So I started to make real small and simple things like blink leds, read inputs, configure outputs, etc.

Now came the hard part. I couldn't find a male/fem mini din 6-pin cable, so I bought a male mini din plug, got an old cable from a com/com (7 wires + gnd) very flexible and got my soldering iron out .... boy, have you ever tried to soldier a mini din socket?? those pins are tinny, almost no space between them. It a clock precision job, believe me!

Time to upload Tara's sketch to the Arduino! Then I connected the wires as per Tara's drawing to the Arduino, connected 2 buttons just for test, one to a digital pin, other to an analog one, removed my wheel, plugged the mini din in ... et voila! (that's French kkk). It worked like a charm. The base was fooled to think it was connected to the PS rim. I though it would recognize the board as a GTE rim, but no problem there. The two buttons worked properly, one was button 1, the analog was the d-pad down arrow, so I presume all others will work too. I'll test the all next week-end, but I still have some doubts regarding how many command assignments I can use and which kind of buttons I can use.

Regarding the buttons to use, simple push buttons will be the most, toggle switches work just a like a double push button, so no problem there. But I would like to use one or two rotary encoders as double inputs too, but I think they won't work just like that. Usually they have to be decoded, and this I presume will take some changes in the code. If anyone know how to do this I would appreciate the help.

Regarding the available connections, on the Thrustmaster software I see all 13+4 but according to Tara we have 2 problems. One is related to serial debugging as he states on the notes of his sketch:

" 1 – Manettino CCW (button 7, View) -> pin 1 (portD bit1) - if you don't use serial debug (UART TX)
  1 – Manettino CW (button 8, Menu) -> pin 0 (portD bit0) - if you don't use serial debug (UART RX)"

I really don't know what this is, or if I need to use this or not, so if anyone would care to explain, I would be thankful.

Then there is the problem of the maximum free pin on the Arduino board itself; I haven't count them yet but I believe in Tara. So this mean, if I don't need to use any of the above pins for debugging, I will have 16 buttons available, which would be better then my GTE rim which has 15 (other 2 are base replica I think). Still if I could use all 17 available would be even better, so if anyone knows how to surpass the problem of limited pins, please let me know. My idea is to use matrix connections, but I don't know how that is done, or if it works in this case.

Well, this post is long enough already, but let me once again thank Tara and Seth. I tell you just looking at the Arduino code, it would have taken me months to figure it out by myself .. that is, if I ever would!

 

Share this post


Link to post
Share on other sites
On November 16, 2015 at 5:50:06 PM, SergioCarr said:

First of all many thanks to Tara for the code a schematics, and to Seth for this thread and the encouragement..

Hey, no prob and welcome to the club! :)

On November 16, 2015 at 5:50:06 PM, SergioCarr said:

" 1 – Manettino CCW (button 7, View) -> pin 1 (portD bit1) - if you don't use serial debug (UART TX)
  1 – Manettino CW (button 8, Menu) -> pin 0 (portD bit0) - if you don't use serial debug (UART RX)"

I really don't know what this is, or if I need to use this or not, so if anyone would care to explain, I would be thankful.

See, Arduino is a multipurpose board. Same pins can be used as Inputs (for buttons), Outputs (to light LEDs, for example), connecting to peripheral (external memory, SD card, 1-Wire, etc), talking back to your computer (USB-UART, virtual COM-port), Debugging (via Arduino IDE "Serial Monitor" feature).

In our case pins D0 and D1 are just used for buttons (== they are configured as Digital Inputs). Yep, to maximize buttons count.

But, if you write your own arduino sketch, you'll probably want to temporarily disable reading buttons on pin D1 and enable "Serial Monitor" for debugging your code. Then D1 must be configured as Output + baud rate set (Serial.begin(9600)), and it'll be possible to send yourself debug messages (Serial.println("Inside setup"), Serial.println("Interrupt happened"), Serial.println("We're inside main()"), etc.). This is handy for development.

On November 16, 2015 at 5:50:06 PM, SergioCarr said:

Then there is the problem of the maximum free pin on the Arduino board itself; I haven't count them yet but I believe in Tara. So this mean, if I don't need to use any of the above pins for debugging, I will have 16 buttons available, which would be better then my GTE rim which has 15 (other 2 are base replica I think). Still if I could use all 17 available would be even better, so if anyone knows how to surpass the problem of limited pins, please let me know. My idea is to use matrix connections, but I don't know how that is done, or if it works in this case.

IMO 16 is enough - I'm only using 11 on my custom rim :) + TXRW/T300RS wheelbases also have 3 buttons on the front (Mode/...). And T500 even has built-in paddle-shifters on the base.

Check out this tutorial for matrix keyboard - http://playground.arduino.cc/Main/KeypadTutorial. In basic words - it allows to connect MxN buttons over M+N wires (3x4=12 buttons over 3+4=7 pins, for example).

Sergio, thanks for your feedback! As far as we have the first success report on T300RS + Arduino mod now, let's make a dedicated wiring for T300 stock rim?

Could you post a table which button responds to which arduino pin? As we did for TXRW 458 Italia:

arduino_nano_to_thrustmaster_wheelbase_w

I think having a separate wiring will be helpful for all T300RS owners.

Many thanks! -Taras

Share this post


Link to post
Share on other sites

Thanks a lot for your feedback :)

I've been kinda busy so I've had no time to further develop this project. Once I have a little time available I will update the button table with the T300/PS wheel.

I will also make some update on the rest of the project, namely the wheel, button plate QR adapter and shifters I am planning to do/buy and all the integration with the Arduino.

VID_20151115_175723.mp4

Share this post


Link to post
Share on other sites

thanks to rr-m for sharing this project!!!

in actually build a raid 1 360mm wheel with a ardurino nano and it works great with my t300!!!

want to contribute something to this awesome project ;-)

here are 2 versions of a arduino nano cases for 70mm and 74mm bolt pattern to hide your nano and the most of you cable clutter!!! disadvantage is the case is 25 mm thick (i use jumper cable and need that much space) and bring the wheel a bit closer to you...

hope it will be usefull for you and you have some fun with it :-)  and you definitly will need new M5 screws for your wheel xD

Edit: ive added the covers for the cases for 6mm more space for your cable cluttern ;-)

the space could a bit tight and you have no hole in your wheel where the horn is^^

if somebody need a custom part like a flat cover or something like that give me a shout!!!

 

here the stl files:

70mm nano.JPG

70mm: http://www.thingiverse.com/thing:1430564

70mm nano cover.JPG

70mm Cover:http://www.thingiverse.com/thing:1478413

74mm nano.JPG

74mm: http://www.thingiverse.com/thing:1430561

74mm nano cover.JPG

74mm Cover: http://www.thingiverse.com/thing:1478434

the 74mm case dosent fit on a "DSD" style adapter! you need a slimline quick release or simular adapter to 74mm!!!

 

Ciao BattleGear

 

 

Edited by BattleGear

Share this post


Link to post
Share on other sites

I've been very busy wth work but wanted to report that Taras mod will work with the t300rs.  the original thrustmaster ferari sketch will work and he sent me a new one to try out which worked as well.  more details to follow but wanted to say for any t300rs owners out there like me looking to put a momo wheel on their base!

Share this post


Link to post
Share on other sites

ive added covers for the 70mm and 74mm bolt pattern cases ;-)

my ats / ets2 wheel is almost finish^^ it works perfect, look ok and drive like a charm... the only thing ive got to do is to 3d print the 74mm cover to hide the ugly wires!

here some pics of my raid 1 360mm trucking wheel with momentary switches. this is the better way to go with switches then buttons, so i can bind 12 funcions then only 6 with buttons ;-)

the wheel:

P4090360.JPG

momentary switches:

P4090364.JPG

and the 74mm case:

P4040347.JPG

Edited by BattleGear

Share this post


Link to post
Share on other sites

importent update to the Stl files!!! ive reuploadet the file in much better export resolution!!! the new files are called rev 2! pleace redownload it! the old workes flawless but dont looks so good as the revision 2!!!

had some trouble with autocad and the export resolution... sorry about that :-(

Edited by BattleGear

Share this post


Link to post
Share on other sites

Finaly we read out f1 rim with Taras. The rim communicated SPI interface like other rims. It has the similar 8byte protokoll. Just the encoders are the different. The encoder has a flag and a rotation counter half byte.

The protokoll analysis doesn't ended jet. We don't know the about MOSI PIN, and don't try to emulate it. 

I hope Taras make an post on his blog about it.

Share this post


Link to post
Share on other sites

Unfortunatelly arduino pro mini has not enough input for F1 wheel emulation. So I don't implemeted  F1 wheel's 2 rotary encoders. But I can show you the first working arduino sketch.

When you download the sketch you must accepts the sketch AS IS, WITH ALL FAULTS,  I don't give you work instruction, everything is in the sketch. When you don't understand it, you must wait to the final version a litle bit longer.

tx_rw_ferrari_F1wheel_emu_Analog_D-pad_beta.ino

Share this post


Link to post
Share on other sites

Hey Davyn, do you mean the 6 pin DIN connector that plugs into the base at one end (usually as the rim is fitted, it sits inside the quick release hub) and on the other end gets wired into the Arduino? If so this is commonly called a PS/2 connector. I used a stock Thrustmaster PS/2 harness I removed from an old Thrustmaster TX rim I had lying around. That way it would mount with the original screws right inside of a stock thrustmaster quick release hub which I also used for my project. Then the other end got wired directly to the Arduino by following the diagram at the start of the thread.

This is just the route I chose though, you can use any standard PS/2 connector you can find as long as it will fit your project and as long as the tail end can be wired to your Arduino. The toughest (almost impossible) part is finding a connector of this style that will have flanges/tabs for mounting inside of a hub. Without using the stock thrustmaster harness you will likely have to do something custom to mount the connector inside the hub. That is if you want automatic connection when the rim is installed to the base. 

Just let me know if I am talking about the right connector. If I am I will get you a link. 

Share this post


Link to post
Share on other sites

Hi Seth, 

What I'm looking for is this kit of PS/2 cable even without the tabs / flange. My cable inside 458GTE has not the same ending (it's smaller) so I cannot reuse it to plug in Dupont wires from arduino.

Is it possible to use an extension PS/2 cable, to cut it, then solder the end to the arduino ?

txrw_1_13.jpg

 

Edited by DavynDominguez

Share this post


Link to post
Share on other sites

Yes we are talking about the same piece. You can buy a standard PS/2, cut it to get to each wire and then wire That to the Arduino but they also sell PS/2 connectors that open up and you can solder wires on so you have a pigtail. Then the other end of the wires get connected to the Arduino. That piece in your pic is the stock harness out of I believe a t300 rim. You can use that piece right there but you have to either cut the wires and connect them directly to the arduino, or see if you can find the receiving end of that plug online and make a pigtail harness (that way the plug isn't ruined). 

The most common option is to either cut a standard PS/2 and determine which wire corresponds with which pin for wiring to the arduino. Or you can buy one of those PS/2 connectors alone that allows you to solder in wires. I will post a link to one and a couple screenshots.

The last two options allow you to retain your original Thrustmaster rim in working condition rather than sacrificing it for a simple plug. I only did that because I had a TX rim lying around that never got used and I really wanted my connector to mount inside the hub and connect when the rim was installed. It was just the easiest option at the time. 

Ebay link to self made connector:

http://www.ebay.com/itm/321201373032

Screenshot_20161022-160243.png

Screenshot_20161022-160311.png

Share this post


Link to post
Share on other sites

Hi guys, I've worked on my wheel today. I've succeed the arduino part, made a test sketch to simulate button inputs (I've not received my push buttons) everything work fine. How did you put the arduino + PS/2 between the dsd type adapter and the wheel ? I don't have enough space to fit cables even if I've printed an arduino spacer from BattleGear

Share this post


Link to post
Share on other sites

I used a stock qr hub instead of the dsd one but with the dsd one you drill a hole for the ps2 plug to pass through and machine (with a Dremel or the edge of a file) a small slot (just big enough to match the thickness of the ps2 cable) along the front surface of the dad adapter. The groove should be on the surface that the wheel mounts too and run from the drilled hole to the putter edge of the adapter. The cable will come through the drilled hole and will run between the steering wheel and the adapter, as long as there is a groove/channel for the cable to sit in it won't get pinched when you mount the steering wheel. Then the arduino can be hidden behind the button plate if you are using one. If you are not using a big enough button plate you might have to get creative and find any viable spot to mount the arduino where it won't look to offensive. 

Share this post


Link to post
Share on other sites

Hi! Somewhere I have a working sketch but doesn't mind. Xbox can't use more button than 12.(if I count right) On XBOX TM f1 wheel's  rotary encoders working as a simple button. On PC you can connect a lots of buttons by usb. So copy the tm f1 wheel communication is definitelly not the best option. 

What is your target? F1 wheel for XBox? You can connect by tara's arduino projekt. 

F1 wheel for PC? You can found a lots of wheel project connected by USB. 

Steve

Share this post


Link to post
Share on other sites

Hello,

Somewhere I saw beta ardiuno file for the TM F1 wheel, but VSteve is right - it is pointless to do this, because all functions work only on PC AKA Advanced mode. So for PC you have plenty of options, for a console - just use Taras file and connect what you want.

 

Cheers

Share this post


Link to post
Share on other sites
8 minutes ago, Gianluca76 said:

I’d like make a diy rim for console and use all button/rotary of f1 Thrustmaster rim. For PC there are many projects, I have already done my diy rim for PC, I’m thinking about console. 😉

Then you don`t need this F1 file...it operates like other from Taras on consoles...this F1 scatch gives benefot on a PC combined with TM drivers to operate with more funcions like rotary encoders etc...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
10 10