Build: Spec Miata "Replica" with VR and Tactile

AS noted in several threads, I have a real racecar. Its a 1990 Miata converted into a Spec Miata (SM) and I race with the National Auto Sports Association (NASA), and the Sports Car Club of America (SCCA). For a couple different reasons, my race season in 2020 and probably 2021 has been/will be non-existent. So, I've turned to iRacing and the MX-5 Cup car (mostly) as continue training. To that end, I want my rig to reflect the ergonomics of my actual cockpit as much as practical.

cockpit_sideview.jpg
20160603_190259.jpg


The wheel (not pictured) is a Momo 78. The seat is a 16" Ultrashield VS Road Race Halo (20 deg layback). Note, the above pics were taken mid-rebuild after a rather serious wreck....hence the shattered windshield, and wires hanging loose.

Besides wanting to replicate my SM controls, my other constraint is space. I don't have a place for a dedicated rig, and I use my computer for working from home these days. So, the rig needs to be portable, and compact...and reasonably cosmetically pleasing when not in use. To that end I opted for VR (Rift S) rather than a triple setup, and a coffin style overall design, DIY out of wood. The general idea is that it can be folded inside itself when not in use and become a "bench" or coffee table.
cockpit_sketch.png


The idea is that all the parts that protrude beyond the boundaries of the "box" can be removed, and tucked inside or fold into it on hinges of some kind.

I've used scale drawings of Fanatec parts for proof of concepts, because a friend was going to sell me his CSW 2.5+V3 pedals+shifter setup when he upgraded to SC2/Quaife/Heusinkveld. Now that he's building a racecar, too...I'm guessing his money priorities have shifted. So, I'll probably replace with Accuforce V2, and a TBD H-pattern. I have an old Logitech Momo that I bought ages and ages ago.

For the pedals, I have a spare set of miata pedals: Clutch, Throttle, and brake. I'm mid build in converting those into a load-cell brake, and linear pot based clutch/throttle. The pedals will be mounted in a box which will hang off the end, and slide inside when not in use.

The seat I plan to use is an expired FIA Sparco Circuit Pro. Its not the same seat as the race car, but its also a halo seat, but I've found that the tactile Exciters work quite a bit better on the composite material than they did on the aluminum. I was going to use it in the car, but it won't fit in around the roll-cage. So, its been sitting on the shop collecting dust and spiders.

I started a separate thread on the Button Box, yesterday. That's here.

For tactile, I'm still very early stages in planning that. But, I currently have 4 DAEX32P-4, and have another 4 on order. I also scored a BK-LFE yesterday for less than half-price.

Anyway....that's a start at this build thread.
 
That is a wonderfull idea, especially the "foldaway-to-not-killed-by-the-wife-part" :thumbsup:
(which is not problem for me so the simrig stands tall in the living room ;))

If i may here are some thoughts for the simulator:

when using a 200kg loadcell the footrest musst be extraordinary stiff, I´m not shure that can be achieved with a wood tray.
Even with avery sturdy pivot point it would need several extra attachments to the "body" of the rig to get it stiff enough.
There are swivel plates that are used to mount swiveling seats, eg in RVs. maybe they give enopugh stiffness?
Or (real life) seat sliders on both sidewalls?
Easiest way to achieve the necessary stiffness would be to just make the pedaltray fixed, I think that wouldn´t need to much extra space.

And as your are designing your own electronics how about going the direct route to hall sensors for throttle and clutch?
In the moment I´m playing aroud with the hall sensors from Leo Bodnar, they don´t have the same voltage range like the ( original thrustmaster) potentiometers, but can be easily scaled in DiView.

In the long run that should be better reliability, maybe even a better resolution on the throttle for better finessing out of corners?

MFG Carsten
 
Upvote 0
That is a wonderfull idea, especially the "foldaway-to-not-killed-by-the-wife-part" :thumbsup:
(which is not problem for me so the simrig stands tall in the living room ;))

If i may here are some thoughts for the simulator:

when using a 200kg loadcell the footrest musst be extraordinary stiff, I´m not shure that can be achieved with a wood tray.
Even with avery sturdy pivot point it would need several extra attachments to the "body" of the rig to get it stiff enough.
There are swivel plates that are used to mount swiveling seats, eg in RVs. maybe they give enopugh stiffness?
Or (real life) seat sliders on both sidewalls?
Easiest way to achieve the necessary stiffness would be to just make the pedaltray fixed, I think that wouldn´t need to much extra space.

And as your are designing your own electronics how about going the direct route to hall sensors for throttle and clutch?
In the moment I´m playing aroud with the hall sensors from Leo Bodnar, they don´t have the same voltage range like the ( original thrustmaster) potentiometers, but can be easily scaled in DiView.

In the long run that should be better reliability, maybe even a better resolution on the throttle for better finessing out of corners?

MFG Carsten

Thanks for the thoughts. To clarify...

Re: 200kg load cell. It's important to know that the brake pedal has a 4.5:1 ratio. Also, the load cell is mounted directly to the brake pedal frame/master cylinder mounts. So, the load path is exactly as it is when installed in the car. Through the master cylinder mounts...NOT through the wood. The wood frame only needs to resist driver foot pedal force which maxes out at about 40kg at full Lockup...and closer to 25-30kg for normal threshold. I've actually already built up a partial prototype and verified full-scale load cell operation, and pedal pressures. It was just a test using the driver calibration software to verify the load cell and pedal config "worked"... Not an in-game test.

I looked at hall sensors, there are a lot of tradeoffs to get good linearity and range of motion sensitivity. They are good for angular measurement if you can mount them coaxial with the pedal, but tricky to do for linear motion if you mount them some distance away from the pivot. Good quality linear slide pots, like those used in audio mixers have excellent life. At $5-$10 each, replacing them every 5 years is pretty minor expense vs. the magnetic design needed for quality hall-effect for limited (if any) real benefit.

Resolution in a ADC system is maximized by ensuring the input voltage is fully utilized. So.... Closed throttle =0V, WOT = 5V. Digital scaling doesn't make up for the lost analog input range. That said, throttle resolution (or even linearity) isn't as important as brake.
 
Upvote 0
Thanks for the information.

You seem to know a lot about this stuff.;)

In my case I´m converting old T3PA pro pedals where the potentiometers are quite crappy.
As they are attached to the rotating pedal the usecase for hall sensors seems to fit.

MFG Carsten
 
Upvote 0
Thanks for the information.

You seem to know a lot about this stuff.;)

In my case I´m converting old T3PA pro pedals where the potentiometers are quite crappy.
As they are attached to the rotating pedal the usecase for hall sensors seems to fit.

MFG Carsten

30 years as an Electrical Engineer and Aerospace should be worth something.

I agree, your use case is more consistent with HE sensors operational characteristics.
 
Upvote 0
So, this happened. I bought a Simplicity SW20.

MIGE.png


So, now I need a button plate for the wheel. I bought an NRG 320mm wheel (standard 70mm BCD pattern / 3-spoke. Its similar to the wheel in the racecar, a little thicker, and leather instead of suede. But, its the same diameter.

WHEEL.png


So, time to put the 3d modeling skills to work: I don't intend on using all the button positions, but I wanted to have space for expansion. I've designed it to accept NKK MB2011 buttons, which are the largest of the three primary options (Knitter, MB2011, and EB2011).

wheelplate.png


I modeled the NRG wheel in order to be able to fit the plate tight to the spokes.

1613935965934.png


That took a few trials to get exactly right. The first draft print is on the printer now:

1613935522980.png
 
Upvote 0
Ive been working on flushing out the details of the design and refining some of my 3d modeling skills. I added the spacer between the wheel plate and the Mige hub. I'm mounting the controller inside that spacer along with a LiPo battery. The controller is going to be a BlueHID....so no USB cable needed.

I also added a spacer between the backplate and the front plate...with passthrough spacer for the cables from the switches.

The big change though was the desire to sink the buttons to be more flush with the front surface of the wheel plate. All of the button options are quite tall from the mounting bushing to the top of the button. The are all ~20mm tall...whereas I want something closer to 5-7mm tall. In order to do that I needed to sink the mounting surface into the plate. So, I added a secondary mounting plate and now the front cover is just a cover.
exploded.png

At the same time I parameterized the design so that I could adjust some values in a spreadsheet and the entire design will recompute to adjust the switch mounting heights, cover standoff, etc.

sheet.png


I need to find a way to allow the various pieces to interlock to simplify assembly. Ultimately the thing will be assembled with 3mm screws and heat-set inserts. But, I'd like the stackup to be indexed with something other than the screws. I'll probably make some tab and socket type joints. I just need to make those 3d printer friendly, without requiring a bunch of excess supports.

I spend a lot of time getting the geometry of the wheel plate just right so that it extrudes up through the spokes. There was a lot of trial and error...even with a scaled photo, parallax and scaling isn't perfect. But, after a few iterations its pretty close (there's about 2mm clearance between the part and the spokes:

master.png
 
Upvote 0
I'm waiting for the printer to finish something else, and a couple of parts to arrive that didn't publish precise mechanical dimensions. So, in the meantime I played around with POV-Ray. Kinda fun, but its a bit more work that its probably worth finding good materials, lighting and viewing angles.

button_plate3_fixed_references5_alignmenttabs_2 (10).pngbutton_plate3_fixed_references5_alignmenttabs_2 (29).pngbutton_plate3_fixed_references5_alignmenttabs_2 (31).pngbutton_plate3_fixed_references5_alignmenttabs_2 (32).pngbutton_plate3_fixed_references5_alignmenttabs_2 (33).png

I did make a couple of minor updates. I added some alignment tabs to all of the parts so that they will index together without screws. The face plates have small ridges on the underside, and the backplate has tabs.

button_plate3_fixed_references5_alignmenttabs_2 (38).pngbutton_plate3_fixed_references5_alignmenttabs_2 (41).png

Also, shown is that the inner spacer "donut" and rear steering shaft spacer have indexing plugs that fit into the back cover.

button_plate3_fixed_references5_alignmenttabs_2 (47).png
 

Attachments

  • button_plate3_fixed_references5_alignmenttabs (7).png
    button_plate3_fixed_references5_alignmenttabs (7).png
    452.8 KB · Views: 108
Upvote 0
I've been playing with KiCad, and the KiCad StepUp WB. The workflow is a bit cumbersome, but I like the results. Here's the lower PCB, and daughter board.
conformed_pcb.png


And the Upper PCB:
toppcb.png


created the PCB outlines by using one of the sketches from the proper portion of the model, and then I inset it by 1/2mm. Once that was done, I exported the result to KiCad as the PCB outline. There's a bit more to it than that, but that's the concept. The left and right side circuit boards are just flipped over from each other. All the footprints are symmetric, so they can be soldered top or bottom.

The switch with the ferruled knob is a funky switch. The switch doesn't have a mounting provision. So, I created a daughter board for it and laid out the pins symmetricly, so that it can be soldered top or bottom. I also modeled the knob using a Tapered loft, and a polar array, cut into a drafted extrusion, and a revolved cut to form the dish on top.

funkyswitch.png


The PCBs don't hold any load. The switches are all panel mounted to an intermediate panel. The switch covers also don't hold any load. They are just cosmetic.

assembly.png
 
Last edited:
Upvote 0
Wow nice work, especially with the funky switch.
Subbed

Thanks. The Funky is an Alps RKJXT1F42001. Mouser, $6.28.


Schematic is just a basic interconnect to the jumpers. I did connect the Encoder common and hat common pins, but I left Ground on its own pin on the module. On the receiving board I connect the COM and GND pins together before taking them to the IDC connector then to the Controller.
funky_sch.png


The PCB is laid out as follows:

Screenshot 2021-03-28 173340.png



With the common and Ground pins exactly on the centerline, they connect to the same pins on either the top of bottom. Similarly with the PUSH button, I connected it to the same pin on the left and right sides of the module. So, its connected the same either way.

EncA / EncB swap pins when connected to the bottom side of the board. So, the encoder direction will be reversed...easily dealt with when programming though. Just swap directions.

Similarly, UP/Left, Down/Right swap pins respectively. Again, its just a matter of programming the interface.

The entire module is just under 1" square.


Incidentally, I'm using a BlueHID:


36 total inputs, including up to 8 encoders, and a couple analog axes if desired. Bluetooth 4...in a 60mm x 35 mm package. It has an intergrated LiPo charger, and a mini-USB connector for charging power. Pretty slick.

It can run off a LiPo battery for over a month on a 1500mAh batt. I have a 2000mAh battery. Both are embedded in the hub spacer...the usb connector is on the right side...there's a hole in the side of the hub spacer for the cable:
hub.png
 
Upvote 0
For a little CAD modeling fun....

Yesterday I decided to try and model the ribbon cable paths between the PCBs and the controller located in the hub spacer. I use FreeCAD as my modeler. FreeCAD has a workbench dedicated to sheet metal folds--its really intended for making folded boxes, and the like. But, what's a ribbon cable except a more flexible flat sheet? So, settled on using Sheetmetal WB to try and model the Ribbon cable paths through the interior into the hub and down to the controller:

ribbon_cables.png


I used sketches to define the axis of folds. Most of the folds are 180 degrees (more or less). It was quite intuitive, and didn't take long to get the fold directions right. If a fold wasn't quite right, it was a simple matter to edit the sketch to move the fold line, and the model updated. Even the path at the top wasn't too hard to do...though the entrance into the plate spacer is quite restricted.

ribbon_folds.png



Kinda cool.
 
Upvote 0
Do you plan on reinforcing the wheel 70mm pattern spokes with aluminum/steel threaded spacers? I've found that PLA/ABS is strong enough for up to 20 Nm of torque, but people always swear it's going to rip into pieces so I reinforce my custom made wheels using metallic spacers.
 
Upvote 0
Thanks. The Funky is an Alps RKJXT1F42001. Mouser, $6.28.


Schematic is just a basic interconnect to the jumpers. I did connect the Encoder common and hat common pins, but I left Ground on its own pin on the module. On the receiving board I connect the COM and GND pins together before taking them to the IDC connector then to the Controller.
View attachment 459259

The PCB is laid out as follows:

View attachment 459260


With the common and Ground pins exactly on the centerline, they connect to the same pins on either the top of bottom. Similarly with the PUSH button, I connected it to the same pin on the left and right sides of the module. So, its connected the same either way.

EncA / EncB swap pins when connected to the bottom side of the board. So, the encoder direction will be reversed...easily dealt with when programming though. Just swap directions.

Similarly, UP/Left, Down/Right swap pins respectively. Again, its just a matter of programming the interface.

The entire module is just under 1" square.


Incidentally, I'm using a BlueHID:


36 total inputs, including up to 8 encoders, and a couple analog axes if desired. Bluetooth 4...in a 60mm x 35 mm package. It has an intergrated LiPo charger, and a mini-USB connector for charging power. Pretty slick.

It can run off a LiPo battery for over a month on a 1500mAh batt. I have a 2000mAh battery. Both are embedded in the hub spacer...the usb connector is on the right side...there's a hole in the side of the hub spacer for the cable:
View attachment 459262
I have a question regarding the funky switch, are you using a custom PCB you can program? Because the push function and the directions use the same NO switch so you have to unpress them in code in order to be able to use the push function.
 
Upvote 0
I have a question regarding the funky switch, are you using a custom PCB you can program? Because the push function and the directions use the same NO switch so you have to unpress them in code in order to be able to use the push function.

That's a very good point, and one that I hadn't noticed. Thanks for pointing that out. Easily solvable with a few diodes and a transistor. Will post updated schematic tomorrow.
 
Upvote 0
I have a question regarding the funky switch, are you using a custom PCB you can program? Because the push function and the directions use the same NO switch so you have to unpress them in code in order to be able to use the push function.

Basically you can diode-OR the Up/Down/Left/Right together to drive the base of an NPN transistor. In the diagram below, the RED text represents the switch connections of the Alps, and the Com terminal. The GREEN push-out becomes the demuxed push button output.

inactive.png


This does become an active circuit, because now it needs VCC to drive the pull-up and bias the NPN into saturation. Note that the 108K pull-up isn't needed. Its just there to make the simulator happy, and provide a valid voltage when the switches are all open. Without it, push-out just acts as and open-collector.

NOTE: the resistance values are random, and not critical. I just drug the slider in every circuit to somewhere in the ~10k and 100k range. Pretty much anything between 1k and 100k would work. With BJT circuits I like a little more current flow (smaller resistors)

With the push switch closed, current flows through the base of the NPN and biases it ON. The PUSH-OUT can now flow current and in this case is ~20mV.

pushbutton_active.png


When either Up or Down closes the bias voltage to the Base of the NPN is pulled down, which causes the transistor to stop flowing. With the 108K pull-up in place Push-Out floats to VCC. But, even without the pull-up the transistor won't pass current.

A_active.png


So, you need 5 signal diodes, a resistor, and a small signal BJT transistor.
 
Upvote 0
Back
Top