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).
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
- Arduino Nano (ATMega328 chip)
- 2x WS2812B 8 RGB LED board
- Nextion 3.2in screen
- USB TTL (com to USB adaptor for nextion)
- Countersunk M3 hex bolts
- 0.5mm Carbon/Glass fibre composite sheet 20mm x 250mm
- OFF(ON) Momentary SPST Push Button Switch: 5x Black, 1x Green, 1x Red & 1x Yellow.
- Wires - 40pcs Dupont Female to Female jumper wire cable 20cm
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.
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).
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).
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.
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.
Once I'd done this I plugged in the Arduino, and loaded up an LED test sketch to it to check it looked ok.
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.
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.
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.
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!
2nd LED strip: Using the same method as the 1st one, I drilled the holes for the 2nd LED strip.
Wheel undone with PCB taken off and 3 buttons removed. |
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 |
1st LED strip located in place |
Testing 1st LED Strip |
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 |
Cutting in progress |
Cutting away further progress |
Cutting done. Test fit of screen. Screen protector is still on. |
The screen fits great! |
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.
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.
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.
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.Test fit of carbon fibre panel (stuck some masking tape on so I would know which side was the front!) |
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.
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.
Finished carbon fibre panel test fit |
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.
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!
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.Arduino & USB TTL installed along with PCB. More electrical tape to prevent shorts. |
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. |
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
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