Thursday 13 July 2017

Creating My Custom Modded Thrustmaster F1 Wheel

Specs:


Simhub by wotever
16x WS2812b RGB LED shift lights powered by Arduino Nano
New buttons wired to original Thrustmaster PCB
Custom carbon fibre faceplate
 

Decisions, Decisions!


There were lots of things to consider when planning my custom wheel. I had an idea what I wanted it to look like, and it mostly worked out that way, but I had to figure a lot of stuff out as I went along.
 
Simhub: I've wanted to do something like this for a while. I've looked at other solutions, such as SLI-PRO and SIM-F1R displays, but as the current crop of F1 cars all have screens in the wheel (with the exception of the Williams, which has it mounted behind the wheel), I didn't think I'd be satisfied with 'just' some 8 led character displays. Once I came across Simhub, I started to believe it was possible for me to create what I wanted, at a fraction of the cost of some of the high end gear.
 
Screen: There were 2 choices, a Nextion screen, which is powered and driven over USB, but is a bit more limited, or a HDMI screen, which would need a display and power cable. I went for the Nextion in the end as I thought it would be simpler to implement this, and also with the cabling coming out of the back of the wheel - I didn't think I'd be able to get a HDMI cable to coil up for flexibility when turning the wheel.

Note that the Nextion screen comes only with COM port connection wiring. To get it to work over USB, you need a COM to USB 'TTL' board (see parts list for the one I used).
 
Shift lights: when reading up on Simhub and what devices it can support, it became obvious I should go for the WS2812 RGB LEDs. This way I can customise the colour, brightness and what they are used for all in the Simhub software, and this could be tweaked at will at a later date.
 
Buttons: Whilst doing research and looking at various sites and YouTube videos, I came accross one that said they replaced the buttons, as the stock ones on the wheel had some shortcomings. I personally found the feeling of pressing the stock buttons OK, but got frustrated that with repeated presses the button caps would rotate, leaving the stickers denoting 'KERS', 'DRS', etc often upside down.
 

Buying Parts


Basically, I sourced all my parts from eBay. The screens originally come from China (I think), and whilst it would have worked out a few pounds cheaper, I honestly just didn't want to wait that long for delivery. I also managed to quite easily find an Arduino Nano and also the WS2812B 8x LED board on eBay as well. I went for UK sellers in all cases to ensure I got them quickly. When I think of a project like this, I am always eager to get on with it as soon as possible.
 
I also ordered a soldering kit from amazon. I did have an old soldering iron, but it was low powered and thought best to invest in a new one. I found this kit, which had everything I needed to get started.

Parts list

Wiring and proof of concept test


Time to do some wiring (sorry I didn't take any photos of this bit). Plug in the screen using the included wire, to the TTL noting the correct pins on the TTL to use (+5v, GND, Data+, Data-).

I soldered 3 wires to the back of the LED board: +4-7v, GND & Data. I then soldered the other ends of these to the Arduino nano: +5v, GND & D2 respectively.

I'd already been working on my nextion template whilst waiting for the parts to arrive, once connected, I uploaded this using the nextion editor (that comes with Simhub). In simhub itself, I had to turn on the nextion plugin (under settings/options). Once this was done, go to the plugins tab and select nextion, then choose the appropriate template in use along with the mapping file.

I tested this first and it worked straight away, which was a relief!

Next I plugged in the arduino. There's a 'template filler' in the simhub folder which you have to use. I filled in the section under WS2812 RGB LED, telling it I had 8 LEDs, and was using pin 2 on the arduino. I tried it the first time and it didn't work, So I opened the Arduino program on the PC and loaded up a RGB LED test program that turns them all on in green one at a time. This worked so I closed that down, opened the did the template filler again, uploaded and re-started Sim hub. It worked this time.

I thought I could take it to the next level and try it on the wheel to get a feel for what it would be like, so I got out my electrical tape and taped the scree, leds, arduino and ttl to the wheel along with a few bits of tape to secure the cables (but allowing them to move freely so they wouldn't get snagged).

Here's a video of that test. It was the coming up to the Canadian Grand Prix at the time so I was using the Montreal track with the Race Sim Studio Formula Hybrid.

 

It seemed to work well. The cables got in the way a bit, and when I tried a race, they must have been pulled a few times as it caused the game and Simhub to crash which left me a bit frustrated. I subsequently learned that it would be better if I was using a powered USB hub so I bought a (Aukey) 7-port one. Also I found that the cables were close being caught on the paddles on the wheel base, so I eventually took those off as well later before I'd finally finished the wheel (I don't use the paddle shifters on the wheel as I have the F1 rim and also the 599XX Alcantara Rim which has it's own paddle shifters).

Time to get to work!


Tools used:
  • Dremmel or equivalent - in my case a Proxxon FBS 240/E Precision Drill/Grinder Multi-Tool that I borrowed from my Dad.
  • Cordless drill
  • HSS 3mm, 4mm and 10mm drill bits - (HSS for drilling steel) for the carbon fibre
  • Wood Drill bits (3mm and 4mm) - for drilling the plastic. Wood drill bits have a point at the end so can be placed more accurately.
  • Jigsaw with permagrit (or equivalent) jigsaw blade - permagrit blades (used for cutting tiles and plastics) are best for cutting carbon fibre with no chipping as I found when I was doing research
  • Countersink
  • 120 grit wet/dry sandpaper - best for finishing carbon fibre from the same video linked above.
  • Engineers square
  • Steel ruler
  • Pencils
  • Masking tape
  • Soldering Iron & solder
  • Wire cutter/stripper.
  • Tweezers
  • #2 Philips head screwdriver
  • Small flat bladed screwdriver
  • Thin-nosed pliers
  • Work bench (e.g. workmate)
Disassembly: 1st job was to disassemble the wheel. There's 4 big screws on the back as well as several other small screws on the back, and 2 on the front that need to be taken out. I used a standard Philips head #2 screwdriver. Then you need to unplug the cables for the paddle shifters, and the one that goes to the back connector (to go the wheel base to make the buttons work).

Removing the PCB: Looking at it, I decided it would be pretty obvious which connections went into which sockets on the PCB, as it looked to be the closest button that was connected to each socket. So I didn't label the wires up. As expected in the end this didn't turn out to be an issue. It's simply a case of unplugging all the wires from the PCB, and undoing the 4 small screws to remove it.

Button Removal: Once I'd done that the buttons that were to be replaced had to be taken out. I initially found this to be quite difficult. There's a blob of glue in each one that needs to be taken out first - I used a small flat head screwdriver - don't be tempted to use anything with more of a point, such as a bradawl, as you may end up jabbing yourself in the hand as I did!

There's some plastic tabs that need to be pushed in on the backs of the buttons. Once these have been freed up, push the buttons from the front of the wheel through to the back. I initially made the mistake of trying to lever the buttons out from the front and ended up putting scratches on the wheel on one of them (has been mostly covered up by the new button thankfully).
  

Wheel undone with PCB taken off and 3 buttons removed.
Drilling holes for LEDs: This was one of the bits I had to figure out as I went along. I figured there was space enough for 1 LED strip either side of the central rib (seen in picture above). I wanted the LEDs to be as close as possible to the screen - this mean that the screws/bolts would need to be at the top. I positioned the strip in place and then marked and drilled the (3mm) holes from the back of the wheel.

I then used some masking tape to mark where the LEDs are in relation to the screw holes, removed this from the strip, and stuck it to the wheel in the correct place matching the screw holes up. I could then drill (4mm holes) through from the front where the marks on the masking tape were for the LEDs to shine through.

Using masking tape to mark the position of the LEDS
This mostly worked out but I did need to use the 3mm drill bit and move the drill sideways to make the holes wider so that the LEDs lined up with their holes.

1st LED strip located in place
Once I'd done this I plugged in the Arduino, and loaded up an LED test sketch to it to check it looked ok.

Testing 1st LED Strip
Cut out for the screen: At this point I was waiting for my 2nd LED strip to arrive, so I moved on to the screen installation.

Using masking tape, I marked out where the cut-away for the screen needed to be, ensuring the screen would be centrally located. I used the section where the metal face plate at the top of the wheel used to be as a reference to get the centre line. Of course I double checked it with an engineers square and the screen as well to make sure the size was correct.

Marking out where the screen will go for cutting
I started to cut away using the Proxxon tool with a cutting disk installed. It was a little tricky to cut. As you can see I didn't use a bench, I just sat the wheel on my knee (whoops.. safety!). I used one hand to hold the back of the tool and the other towards the front of the tool to help guide it more accurately.

Cutting in progress
I had to cut both where the lines on my masking tape were, and then cut horizontally along the bottom of the section to remove the unnecessary plastic.

Cutting away further progress
After that I used a grinding attachment with the Proxxon to wear/smooth down the plastic where needed. I was happy when doing the first test fit that the screen went in ok! The connector at the back slotted into the empty space next to the right-hand encoder on the wheel, which worked out nicely!

Cutting done. Test fit of screen. Screen protector is still on.


The screen fits great!
2nd LED strip: Using the same method as the 1st one, I drilled the holes for the 2nd LED strip.


Checking location of 2nd LED strip after holes have been drilled.

Carbon fibre face plate: The carbon fibre panel had protective plastic on both sides. I covered one side in masking tape so I'd be able to draw on it easily.

Using the removed metal plate as a template, I marked out the top section of the wheel (where the LEDs are), I then measured and marked a rectangle out big enough to just cover the area of the screen PCB and a little bit more. I knew if I got this bit wrong, there was enough space on the carbon fibre sheet to make another 2 face plates.

Marking out the carbon fibre for cutting
I cut out the shape using a permagrit jigsaw blade (such as is used for tiles and plastics), leaving plenty of margin for error. This would mean more work for the sandpaper, but result in a better finish to the edges.

Carbon fibre panel size check
Once I'd done the cutting, I used a sanding block with 120 grit wet/dry paper to refine and smooth the edges, checking the fit against the top section of the wheel (where the metal plate was) at regular intervals until I had a good fit. I then measured and marked the two screw holes, again, using the metal plate as a template, and checking by measuring as well, before drilling them out.

Test fit of carbon fibre panel (stuck some masking tape on so I would know which side was the front!)
Next, it was time to cut out the window to allow the screen to be able to be seen. I measured carefully and marked out the rectangle for the viewable area of the screen, again using masking tape. I then used a 10mm drill bit to drill 1 hole on each side of the rectangle to be able to get the jigsaw blade in. I knew there wouldn't be room for turning the jigsaw, so just straight cuts on each side, hence the 4 holes.

Drilling out holes for the jigsaw to cut out the window for the screen
Again, leaving a margin for error, or so I thought, I cut out the window. On the right side when going up, the jigsaw slipped a bit and I went 1 or 2 mm too far. Thankfully on trying it, it looked ok, and as it had taken almost 2hrs to make at this point, I didn't want to start again! I've smoothed all the edges as much as possible. My sanding block is too big to fit in there so I wrapped the sandpaper around a file instead.

I'm not entirely happy with the finish, but as I mentioned it would have to do for now, given how long it took to make. If I get the time later (which is unlikely), I can always try and make a better one, using this one as a template. To finish off the face plate, 2 holes needed to be drilled for the screws at the bottom of the screen.

Finished carbon fibre panel test fit
Once I'd checked those screw holes were correct, I took the screen out again, screwed to 2 screws into the top, and drilled the holes for the LEDs to shine through with a 4mm bit.


Test with screen installed.

Final Assembly



I took everything off again to do the buttons first. I cut the wires on the old buttons as close to the button as possible, then stripped the wires back and soldered to the new buttons. It was then a case of fastening these in using thin-nosed pliers to hold/tighten the nut at the back of each button.

I had ordered some black countersunk bolts to fasten the LEDs in, so that the carbon fibre face plate would sit over the top of them and only the LED holes would be visible.

Both LED strips now installed with countersunk bolts.


Back of LED installation. Electrical tape used to stop anything from shorting out.
It was a bit of a tight squeeze to get the arduino and the USB TTL for the screen with all the wiring to fit, but there was just enough room. I soldered the wires on to the back of the socket for the screen as there wasn't enough room to use the plug in connector. Just before I re-assembled, I noticed the ground wire for the screen had come loose... luckily there was just enough room to get the soldering iron in to fix it so I didn't need to take the whole thing to bits again!
Arduino & USB TTL installed along with PCB. More electrical tape to prevent shorts.

Rear view of the completed front section of wheel with everything installed.
For the back part of the wheel, I had to drill out a large hole (10mm) to be able to fit the mini-USB connectors through, and even then I had to enlarge the hole slightly by moving the drill about which effectively made a slot.

On the first try of re-assembly, the Arduino and the TTL didn't quite fit, so I would have to cut away some from the ribs in the back section of the wheel. I didn't have time to do this that day, so I held the wheel together with electrical tape to at least be able to give it a quick test! I didn't get any pics of this as it was a bit of a rush. Also it was just as well that I hadn't screwed it all back together as I forgot to screw the Ferrari knob back onto the front!

The next day that I had time, I used the proxxon with the cutting disk to cut 2 'V' shapes out of the 2 ribs where the Arduino and TTL would be. This was just enough to allow the wheel to go back together, whilst cutting away as little as possible to retain structural rigidity of the of the wheel.

Back part of the wheel showing USB cables and 'V' shapes cut out of the 2 ribs.
Now it was just a case of putting it all back together again (remembering the Ferrari knob!). I put back the PCB, plugged all the connectors for the buttons in, then the USB cables, then finally the connectors for the paddle shifters and the connection to the wheel base.
I just put the 4 big screws in first and gave it a quick test, before then putting the remaining screws in.

Back of the wheel showing the 2 USB cables exit.



Finished Wheel



Finished wheel!




The screen still works - good!


LEDs work too!


Small test with a car in motion before the 1st drive proper.
Overall I'm very happy with the way it's turned out. It certainly adds to the immersion factor for sim-racing. I'm still developing my nextion template. I now have pages in the template for the RSS Formula Hybrid (shown on this page), Formula RSS2 and also one for Porsche 919 Hybrid.

 

Video of 1st full test run

 

 



 

 

 

15 comments:

  1. Hi, very nice mod !
    What software on the PC are you using to send telemetry to the screen ?
    Will you share your nextion template ?
    Thanks

    ReplyDelete
    Replies
    1. Hi there sorry I didn't see this sooner. Blogger doesn't seem to notify comments in the same way that youtube does! Simhub is the software used to send the telemetry to the screen: http://www.racedepartment.com/downloads/simhub-diy-sim-racing-dash.10252/

      I'll put my nextion template on racedepartment soon. There's a few more tweaks I want to make before I'm fully happy with it.

      Delete
  2. ciao
    Mi chiamo Antonio ,oltre a dirti chehai fatti un bel lavoro ti scrivo volevo chiederti se compro questo volante riesco a fare questa modifica mica è troppo difficile?
    va bene per la ps4

    ReplyDelete
    Replies
    1. Ciao Antonio.

      Sorry my Italian is not great, although I do know a little (Italy is my favourite place to go on holiday), so had to use Google translate. Hope you don't mind a reply in English, as Google translate is not always the best I have found...

      If this is for a PS4 it wouldn't work unfortunately, as you need the pc software to be able to make the screen and LEDs work. Otherwise you should be able to build it if you have some confidence with the soldering the wiring, and of course you need to make your own face plate for it as well.

      Delete
    2. ciao Dave
      quindi sul pc quale gioco dovrei comprare? sempre f1 2017 codemaster e poi il volante thrustmaser?
      perchè io ho il logitech g29 non si può adattare il volante thrust?

      Delete
    3. anche io uso il traduttore di google...

      Delete
  3. hii. very good job.. how do you connect the lcd to board can you explain

    ReplyDelete
    Replies
    1. Thanks. The screen is a nextion screen which runs over a serial connection. You use something called a TTL, which converts a serial connection to USB.

      Delete
  4. Hey Dave

    Do you have some pics with the cables on you Arduino, TTL and LED board? I didn`t find Data+ and data- for example.

    ReplyDelete
    Replies
    1. I don't think I took any detailed pics like that I'm afraid. I will try to find out/remember the wiring information for you if I can soon (without taking it apart!).

      Delete
  5. ciao ma i led, sono collegati all'arduino, il codice per farli funzionare?

    ReplyDelete
  6. I've been searching for your Nextion template on racedepartment but cannot find it. Where can I download it from?

    ReplyDelete
  7. Any particular reason why you are using USB TTL instead of wiring it to the arduino nano?

    ReplyDelete
    Replies
    1. I figured out that nano does not support nextion like that. I did the same, but used a pro micro instead. So i managed to skip the USB TTL part by connecting both the LEDs and the Nextion display to the pro micro. works like a charm :)

      Delete
  8. Harrah's Casino & Hotel Maryland - JamBase
    Information, timings, contact information and seating 상주 출장마사지 charts for 안성 출장안마 Harrah's Casino & Hotel Maryland 서귀포 출장안마 in Hanover, MD. Hotel 충청남도 출장마사지 Information, 경기도 출장안마 Reviews, Amenities,

    ReplyDelete

Creating My Custom Modded Thrustmaster F1 Wheel

Specs: Simhub by wotever Nextion 3.2in screen 16x WS2812b RGB LED shift lights powered by Arduino Nano New buttons wired to or...