Saturday, April 27, 2024

Making a Rock Climbing Cam


I got into rock climbing around 2019 and have been getting deeper into the sport ever since. One of the disciplines I got into is trad climbing where one climbs while placing protective gear in cracks and features to catch them in case of a fall. One of the coolest protection devices is the cam which has several moving parts. Being an engineer and climber, I want to combine my hobbies and try to make my own gear.

One note before we get too far - even though I am building and testing safety gear I don't actually plan on actually using this device in my climbing. All of the fall testing I did had backups with real safety gear. With proper testing and quality control (Out of the scope of this project but it doesn't seem too hard to make something compliant with EN 12276) somebody could make a cam that can be considered safe enough to use while climbing.

I started off the design by fighting solidworks to make a parametric logarithmic spiral using the equation driven curve feature and milling a single lobe. This was the hardest part of the design and a good test for the CNC mill so I wanted to de-risk it first. I knew that the geometry was going to make it difficult to hold in the mill so I made a fixture to hold a raw piece of stock for the first operation and a half complete cam lobe for the second operation.




Once I knew that the lobes can be machined, I spent some time on the rest of the design. Most cams are rated for 8-12kN of force with extremely small or large cams falling out of that range so my target was for the homemade cam to break somewhere around that force. My napkin math said that a 1/4" 4140 shaft shears at 13kN and I found some interesting heavy duty spiral snap rings that claim to be good for 500lbf axial load.

For the loop that attaches the cam shaft to a carabiner most manufacturers use a steel cable with swaged or soldered connections. Although I have access to the tools, I would want to create a process and test a few swaged connections before committing to it for the design. Luckily I found an alternative - dyneema cord. This cord can meet the tensile strength of steel but rather than swaging connections you can splice them. There are well-defined instructions from the manufacturer on how to splice dyneema to ensure the connection is as strong as the cord itself that saved me time developing a crimping process.




Finally I had to design the stem and trigger system for the cam. The stem is usually flexible on cams to allow them to bend around rock features without breaking. Older cams used to have rigid stems and in some placements it was possible for them to create a lever arm and snap when a climber falls on them. To allow the stem to flex I used 3D printed TPU. I was also able to 3D print the trigger bar but that was PETG to keep it rigid.

To hold the cam in place, there are springs that push the lobes outward to hold it in place until the cam is weighted. I could not find an exact fit for my lobe design so I decided to make my own springs. The process was pretty simple - I got some music wire and turned a spring jig on my lathe. After a few attempts I was able to control the diameter of the spring. I tried a few different wire thicknesses to get my desired spring constant without plastic deformation of the spring and found a combination that feels similar to my other cams.




Assembing the cam was hard due to the spiral snap rings. In the future I would look for alternatives (possibly threading the ends of the shaft?). Once I completed the cam, I headed out to the crag to test it out. Here is a short video on the process of making the cam and me taking some lead falls (falling from above the cam).


After doing some of my own testing and not breaking the cam, I sent it over to Ryan at HowNot2 and he tested the cam out on his break test machine.

Thanks Ryan! I'm glad I got to see it break.

I'm super happy that the cam broke in the right range and slightly surprised at how well the dyneema held up. It looks like a stress concentration in the axle at the snap ring groove caused the cam to break in that test. I think a fun future project could be building 2-3 cams in parallel and try to make them all pass the EN 12276 testing.

 

Monday, March 18, 2024

Brushless Design P1: Simulating and Designing an SRM

Spinning the rotor while applying 100 amp-turns of MMF to the A winding on a motor design


 Now that I know that I want to build an SRM motor the next question is how do I design one of these things?

There are a few different software tools that can be used to design and simulate motors but they seem to be either very expensive or limited to simple driving algorithms. SRM motors have a ton of unique control strategies that I would like to experiment with. I think it would be really cool to integrate the motor simulation software with my motor controller software unit tests so that I can run full simulations of the motor controller, control algorithms, and motor geometry to make a well tuned and high performance system.

I did a good amount of research on open source 2D magnetostatic solvers and settled on using FEMM with a python plugin. I really wanted to find something with 3D capability and the ability to simulate over time windows (FTDT solver) and I believe that something like that exists but I want to stick with something that is free and open source and have not yet found a match.

Since FEMM is meant to run on a windows machine I created a docker image that has wine and some other dependencies installed. The simulation software I built interacts with a running instance of FEMM and loads the motor geometry, sets the circuit currents, rotates the rotor, analyzes the problem, then exports flux linkages and torques. I can then combine all of these simulation points over a range of angles and currents to estimate the performance of the motor. I have all of the code that I am using to simulate motors through FEMM here.

With this approach I can estimate back EMF, resistive losses, torque, and winding inductance based on the speed, angle of the rotor, previous currents in the windings, and geometry of the motor. The only parameter that I care about that I can't measure directly through this simulation is eddy current losses but I am counting on them being low enough to not significantly impact my system due to the use of silicon steel for the rotor and stator.

I parameterized the motor geometry as well so it can be configured through a .json file. This lets me optimize the motor geometry through simulating a variety of motors with different parameters and comparing them in a semi-automated fashion (limited by my server speed). You may notice that the rotor shown above has much shorter teeth than the initial drawing from the previous post. I found that shortening the rotor allowed me to fit more turns around the stator and generate a stronger magnetic field which increased torque output.

In general SRM motors have a lower torque at the same size as a IPM or PMSM motor due to the lack of permanent magnets to generate strong magnetic fields. To do useful work without the need for a massive reduction, the battle for most SRM designs is all about maximizing torque density. I have been reading some papers on different strategies to maximize the torque and power of SRM motors and in the next post I will be going into specifics of what I did to optimize my motor design.