I made up a YouTube video showing the techniques I used when manufacturing the beta edition of the qdd100 servos TODO link. Check it out:
To date with my machined parts, I’ve mostly left everything in an “as-machined” state. As I get ready to make some servos where I care at least a little about how they look, I decided to invest a little in surface finish options. I started using some Scotch-Brite, which gave passable results for some components, but it was hard to be consistent and the final results were always somewhat anisotropic.
Thus, a new vibratory tumbler!
This is designed for polishing ammunition cases, but works fine for any metal parts that aren’t too large. I’ve been able to fit entire back housings from the mk2 servo into it, although at that size the polishing isn’t super efficient.
The resulting parts look pretty decent for features that the media is able to reach, definitely better than my hand attempts:
I’m planning on building up a set of mk2 servos to test them on a quadruped and make some development kits. As of now, I’ve got all the materials in house for the build and many things partially assembled!
One of the parts on the original quad A0’s leg that was prone to failure was the “knee stud”, a little cylinder that acted as the mating interface between the upper leg and the lower leg. It directly attaches to the upper leg, and has bearings that ride between it and the lower leg. The entire tension of the leg belt is born in shear by this part.
In the mk1 leg, this part was 3d printed with heat set inserts used to form the threaded holes. This mostly worked, although occasionally the stud could shear along the 3d printed lamination lines. Thus, for the mk2 leg, I’m making this part out of 6061.
The first op takes a 0.875 inch cylinder, and does all the work on one of the sides. That includes roughing it down to length, getting the outer diameter that the bearing rests on accurate, and drilling and threading the holes.
At that point, the part is turned over and bolted into a 3d printed fixture.
Then, all the tool paths are repeated on the other side, as well as the middle being cut away. I didn’t really worry about surface finish on the middle section, since it will never be seen. This of course would be much easier on a CNC lathe with live tooling, but hey, you use what you’ve got!
Just because I’m generally looking for workholding solutions for the Pocket NC, I recently picked up a vise designed for it from wcubed.co.
Unlike the stock vise that comes with the PNC, this has two movable aluminum jaws. It can probably hold with greater force than the stock vise, since there is a larger contact area, although the screw mechanism doesn’t necessarily apply the force all that uniformly. Also, since both jaws are movable, you have to take some care to either manually center things, or do some edgefinding, which isn’t terribly easy on a PNC.
What it does allow though, is clamping narrow things. The stock vise bottoms out at around 0.5″. This vise can go all the way down to 0.
That came in handy with some recent moteus servo parts that I wanted to do a “5-axis” style toolpath from 3/8″ thick bar stock.
The vise provided plenty of clamping power to hold and machine at the tip of this awkwardly long bar. This cut does chatter like crazy, but that’s about what you would expect.
As mentioned previously, I made up some soft jaws to hold 4in round stock in a 6″ vise. My goal was to prepare stock for workholding on the Pocket NC v2-50 to machine prototypes of the front and back housing for the reduced weight moteus servo mk2.
Now, I’ve used those soft jaws to trim down both pieces of stock to the correct length, bore a center hole, and in the case of the front housing, remove a bunch of additional material in a more expeditious manner. There’s not much more to it than that, so here’s the video:
While working to build the reduced weight moteus servo mk2, I got tired of hand machining the first operation on a manual mill and lathe for the front and back housings. It was necessary, primarily to enable workholding on the PocketNC v2-50, but also because it allowed me to remove much of the excess material more quickly than could be done on the PNC. So, I got trained up on the AA CNC Bridgeport and went to town.
The manual work I did on the mill used V blocks to hold the round stock, but for this I wanted something that was more repeatable and would offer more gripping power. Thus I decided to try my hand at soft jaws for the first time. I got some blanks from MonsterJaws which would fit the vise there and got started.
For the CAD/CAM, I grabbed a random 6″ Kurt vise model from the interwebs and stuck my part in it. Then I added the vise blanks and used a “combine” operation to subtract out the stock from the blanks.
Then, when doing the CAM, I just ran a 3d adaptive followed by a finishing contour pass:
When I ran the actual toolpath, I messed up and had the spindle running about 1/3 of the speed I wanted, which made for some nice chomping noises, but it did cut.
While working to build a weight reduced moteus servo mk2, I reworked my outer housing CAM to do all the machining on the Pocket NC v2-50. For this part I didn’t necessarily need any challenging workholding and since I could get the stock in tube form, there wasn’t an inordinate amount of material to remove either.
The one challenge is that when mounted in the Sherline Chuck, the mill can’t actually reach all the way to the edge of the part without hitting the X travel limit (which is why most of the other 100mm diameter parts I do are fixtured slightly off-center). In this case I tackled the problem in two iterations.
For the first iteration, I just used an adaptive clear from 8 different directions to get most of the material out of the way, then used a multi-axis “flow” to finish the outer diameter causing the B axis to rotate while the end-mill remained roughly in place. Then a subsequent pass came in from the top to clean up all the stuff that was left behind.
This worked, but had a couple of problems. First, it was slow. A full cycle time was something like 10 hours, largely because all the adaptive clears spent a lot of time not removing much material and rapiding around. Second, it left a non-ideal surface finish on the outer diameter. The “flow” toolpath for some reason seemed to jiggle the mill around in X and Y for no great reason, and occasionally sped the B axis up by like 3 times the normal rate for a quarter revolution for no apparent reason.
I figured this would be a lot easier if I could just have more control over the mill while spinning the B axis. I could take all the extra material off the top using the side of the cutter, and produce a nicer surface finish on the outside. Since that wasn’t possible within Fusion 360, I figured this wouldn’t be a terrible time to try doing some “manual” g-code for the first time. The “manual” is in quotes only because I ended up writing a python script to do the actual generation.
To begin with, I started with the g-code from a Fusion 360 generated toolpath so that I could get the tool setup, probing and such configured in a way that I knew the Pocket NC would accept. Then my python script had two options, the first generated the g-code to turn down all the material on the top of the stock to the final length. It moved the mill into position, spun the B axis by 340 degrees, then gradually moved down a Y step while moving 20 degrees, then spun another 340 again until reaching the end. This worked out just great, used much more of the cutting length of my Datron 4mm mill, and got done in something like 20 minutes.
The second option in the script was for turning down the OD to the final size. This used the same basic approach, but instead of setting the Z past the inside of the tube, set it to exactly the OD. The the Y stepped down in the same manner as before, just over a different range (the top of the finished part to slightly past the bottom).
This got me to where I could start on the internal features in only about 40 minutes of Pocket NC v2-50 time, which is a big improvement over a trip to Artisan’s Asylum and an hour on the lathe in order to get it set up, turning the part, and then cleaning up.
After having produced the first functional demonstration of the moteus servo mk2, my next step was to decrease the weight. While I was at it, I made two other changes:
- Axial connections: I switched to a design with entirely axial connectors, which removes the need for 4th axis machining when producing the parts.
- Planet Input Bearing: I switched the planet input bearing to be inserted from the rotor side. This way, the bearing is captured between the planet input and the rotor, rather than between the planet input and the gears. That also improves the ability to assemble and disassemble the unit.
Slimming down the housings drops around 100g from the total weight. I may still try to take out some weight from the planet input and output, but they don’t weigh much to begin with so the potential gains there are small.
Next up I’ll manufacture and assemble this, then get it running.
After machining a fair number of parts with threads, I’ve tweaked my thread milling feeds and speeds to both go a little bit faster, give a more reasonable fit, and remove the last bit of niggling interference with the M2.5 recipe.
I’ll list the changes here, and have updated the original recipe
|M3 Pitch Diameter Offset||0.538mm||0.568mm|
|M3 Repeat Passes||NO||YES|
|M3 Lead To Center||NO||YES|
|M2.5 Pitch Diameter Offset||0.430mm||0.480mm|
|M2.5 Stock to Leave||0.0mm||-0.02mm|
|M2.5 Repeat Passes||NO||YES|
|M2.5 Lead To Center||NO||YES|
Notably, the “Lead To Center” option found on the linking tab is what prevents the M2.5 threads from rubbing when inserting in later passes. Thanks to Quincy Jones from Implemented Robotics for that tip over in the mjbots discord!