My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Show off your FreeCAD projects here!
tom_hampton
Posts: 11
Joined: Thu Jan 21, 2021 10:27 pm

My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Postby tom_hampton » Wed Mar 03, 2021 12:13 am

Hi All-

I'm new to FreeCAD, and new to general purpose parametric modeling. I've used various purpose built CAD packages over the years for various things: cabinetry, house building/remodeling, landscaping, etc. I'm an electrical engineer by trade. But, this is my first foray into this world.

I bought a 3D printer (Creality CR-10) back in January. Partly for the fun of it, and partly to create parts for my other hobby Simracing.

I'm to the point now that I can generally create any part that I have a need to, including some limited boolean operation based parts. That's not to say that I can create *ANY* part...just the ones I've had a need to dream up.

So, my project is to create a button plate for my simracing steering wheel system. Basically its a plate to allow me to activate various simracing functions while not removing my hands from the wheel using switches of various types. Its still a work in progress, and I've used it to try and learn certain features of FreeCAD as I go.

I'm currently using RealThunder's Linkstage3 branch, and updated to 0301 version today.
wheelplate.png
wheelplate.png (209.88 KiB) Viewed 2069 times
wheel_parts.png
wheel_parts.png (23.84 KiB) Viewed 2069 times
The switches are STEP files from NKK for the parts I plan to use to build it. The padel shifters are also STEP files from the parts I'm using off of Thingaverse. Everything else is modeled in partdesign. Here's an exploded view:
exploded.png
exploded.png (172.46 KiB) Viewed 2069 times
So far, I've just been modeling in PartDesign and using transform to manually move the various bodies in space---including the exploded view above. I've recently starting learning Asm3, and will start trying to migrate this design over to using constraints, and exploded assembly for...well, exploded views.

I modeled the wheel itself in a separate file and exported as a STEP just to keep things a little simpler and it wasn't subject to change. I modeled the wheel using a scaled photo of the real thing and placing it on an image plane. then the painstaking process of making several experimental sketches, and printing them to fit to the wheel...making adjustments (due to scaling and parallax issues) and trying again. It was quite tricky to get the master sketch fully (and not over) constrained.
master.png
master.png (141.32 KiB) Viewed 2069 times
Things that I continue to struggle with:

How to create a master sketch that I can share between bodies? I've learned how to use shape binders, and that mostly seems to solve my issues with creating parts which are all based on various fractions of the MasterSketch.

Oftentimes, while creating child sketches from the master sketch, and adding a few features off it, I find that the new elements sometimes break the existing constraints and confuse the solver. Usually that's related to auto-constraints, especially horizontal or vertical, but tangent and onto can be equally problematic. Its tricky and frustrating to search for the RIGHT constraint to delete...though its usually near the bottom of the list.

"Wire not closed" is the bane of my existence. I don't know how many times I run into this while padding or pocketing. Then run sketch validate to find/fix the missing coincidences, only to have solver tell me I have redundant constraints. Then it becomes a hunt for just the right trick to convince the solver that the sketch is constrained, and the solid modeling that the wire is really closed. I haven't learned magic here. But, tangent and onto seem to be where the confusion comes from.

Solver understands that those are fully-constrained...but, the solid modeler doesn't seem to understand that the points are geometrically coincident without an explicit constraint. I'm sure I'm doing something wrong....I just haven't figured out the right magic---just trial and error every time. I've deleted a lot of sketches and started over with a fresh carbon-copy.

Next Steps:

The most recent iteration I added a spreadsheet to parameterize the extrusion depths. The main reason for that (besides the educational aspect) is that there are several models of switches with various vertical dimensions (button heights, shaft lengths, body height, solder tab lengths). I'm not sure which switch I like best, so I wanted to be able to adjust after I get some samples and decide which I like.
sheet.png
sheet.png (47.05 KiB) Viewed 2069 times
Now that I can easily change these things...manually transforming them in space has become more cumbersome. So, I've started playing with Asm3 to learn how to stick things together geometrically. Then of course, the natural extension will be to be able to create exploded views.

Anyway, thanks for reading. Comments and criticisms are welcome. At least half of the point of this project is to learn how to FreeCAD. I could have brute forced this much faster once I got the wheel shape nailed. Everything afterwards has been about learning new / easier ways to do things for future projects.
User avatar
doul
Posts: 70
Joined: Fri Dec 25, 2020 4:14 pm

Re: My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Postby doul » Wed Mar 03, 2021 7:50 pm

Hello Tom !

Great work !

You have some troubles with Sketcher ? Turn off Auto constraints (in Edit controls), if you want to see unconstrained elements click on Solver message "x degrees of freedom" they will be selected automatically, when a sketch is constrained the color of elements change from white (no constraint) to green (full constraint), orange for over constraint. You can create an edge linked to an external geometryImage, take a look on the image below, this edge could be an other sketch. Instead of SpreadSheet I've used DynamicData to control master sketch, and automatically linked sketch without entering Sketcher edit mode.

https://wiki.freecadweb.org/Sketcher%20External
sketch_sketch.png
sketch_sketch.png (184.54 KiB) Viewed 1805 times
sketch_sketch2.png
sketch_sketch2.png (178.05 KiB) Viewed 1805 times
sketch_sketch.FCStd
(10.01 KiB) Downloaded 17 times
FreeCAD is cool 8-)
tom_hampton
Posts: 11
Joined: Thu Jan 21, 2021 10:27 pm

Re: My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Postby tom_hampton » Wed Mar 03, 2021 9:38 pm

doul wrote:
Wed Mar 03, 2021 7:50 pm
Hello Tom !

Great work !

You have some troubles with Sketcher ? Turn off Auto constraints (in Edit controls), if you want to see unconstrained elements click on Solver message "x degrees of freedom" they will be selected automatically, when a sketch is constrained the color of elements change from white (no constraint) to green (full constraint), orange for over constraint. You can create an edge linked to an external geometry
Hey thanks for the compliment.

Yes, I considered turning off the auto-constraints. But, most of the time its helpful. I've learned to just click away when needed to avoid auto-constraints when I know they will cause a problem. That works well for lines. Arcs can still be a problem, though.

I am familiar with the constrained state color coding (white, green, orange), and the "x degrees of freedom" hot-link. Usually my issues revolve around redundant constraints and finding the right one to remove.

I've used the external constraints for linking to geometry in a different plane. But, I hadn't thought about it for linking back to the master sketch. I've been using Carbon Copy for all linkings back to the master sketch. I wonder if that would help some of my issues. Hmm.....

A good example is this sketch:
bottom_switch.png
bottom_switch.png (156.8 KiB) Viewed 1766 times
Placing and constraining all the new geometry conflicted with some of the linked carbon-copy geometry constraints. It took several tries to get the constraints for the new sketch elements constrained, without breaking the CarbonCopy constraints, and all wire closed...so that I could subsequently PAD the sketch.

Maybe if I'd used external geometry links I could have simplified these child sketches and avoided the above constraint conflicts.
tom_hampton
Posts: 11
Joined: Thu Jan 21, 2021 10:27 pm

Re: My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Postby tom_hampton » Tue Mar 09, 2021 8:46 pm

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 (13).png
button_plate3_fixed_references5_alignmenttabs_2 (13).png (647.86 KiB) Viewed 1473 times
button_plate3_fixed_references5_alignmenttabs_2 (29).png
button_plate3_fixed_references5_alignmenttabs_2 (29).png (94.2 KiB) Viewed 1473 times
button_plate3_fixed_references5_alignmenttabs_2 (31).png
button_plate3_fixed_references5_alignmenttabs_2 (31).png (299.53 KiB) Viewed 1473 times
button_plate3_fixed_references5_alignmenttabs_2 (33).png
button_plate3_fixed_references5_alignmenttabs_2 (33).png (272.09 KiB) Viewed 1473 times
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.

Also, not 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 (35).png
button_plate3_fixed_references5_alignmenttabs_2 (35).png (479.23 KiB) Viewed 1473 times
I've also played with adding a few fasteners, and using exploded assembly. However, I've learned that exploded assembly does NOT like mirrored parts. The switches are all STEP files, and I placed them on the left side, and then used part|mirror to mirror them onto the right side. It mostly works, but exploded assembly sometimes double moves the mirrored parts. Once it does that it won't seem to move them back to the correct assembled position, rather they are permanently offset. Instead of going from 0 to 100 and back, they move from 100-200 and back.
tom_hampton
Posts: 11
Joined: Thu Jan 21, 2021 10:27 pm

Re: My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Postby tom_hampton » Fri Mar 26, 2021 3:24 am

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
conformed_pcb.png (195.79 KiB) Viewed 874 times
And the Upper PCB:
toppcb.png
toppcb.png (99.51 KiB) Viewed 874 times
I 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 known as a funky switch. Its a 4-way joystick, and the knob rotates left /right (quadrature encoder), and then it has a push action---seven functions in total. The switch doesn't have a mounting provision. So, I created a daughter board for it, and layed out the pins symmetric, 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
funkyswitch.png (325.78 KiB) Viewed 874 times
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
assembly.png (199.59 KiB) Viewed 874 times
The only thing I'm kinda bummed about is that the PCB models imported from KiCad don't seem to be recognized by other WBs. I tried to render using POVRAY-Rendering-WB, but the render acts as if the PCBs aren't there....I just see the structure underneath. Likewise when I try and place fasteners in the PCB mounting holes the fastener WB won't do it. I have to place them into the back-plate mounting hole and then offset it to the PCB height.
tom_hampton
Posts: 11
Joined: Thu Jan 21, 2021 10:27 pm

Re: My First "real" project in FreeCAD - Simracing Steering Wheel Button Plate

Postby tom_hampton » Sun Mar 28, 2021 11:35 pm

Yesterday I decided to try and model the ribbon cable paths between the PCBs and the controller located in the hub spacer. I settled on using Sheetmetal WB.
ribbon_cables.png
ribbon_cables.png (475.05 KiB) Viewed 584 times
I used sketch based folds (mostly 180 degrees) and extends to follow the path. It was quite intuitive, and didn't take long to get the fold directions right. 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
ribbon_folds.png (294.9 KiB) Viewed 584 times