Tag Archives: actuator

First walking with gearbox chassis

Short recap: After building the quadruped with near-direct drive motors, I discovered that the lateral servos had insufficient position control authority to keep the robot standing up.  Thus I embarked on a now month long quest to design and build an integrated planetary gearbox.  At this point, I have enough gearboxes built for all the lateral servos, so it should be able to walk, right?

And tada!  It can!  Well, at least a little bit.  I’ve only spent a short while with the gearbox based chassis, and have a lot of work left to do.  However, here’s a quick video showing it walking around, slipping on a ruler, and almost falling over a few times.


Lateral servo gearbox build(s)

After completing one gearbox, I needed to build at least 4 more of them to replace the lateral servos on Super Mega Microbot (2).  So, I got to work.  First, I disassembled 5 more BE8108 motors.


Then, I drilled out the rotors, this time using the mill at AA.


Next I removed the stators from their backing.  This was painful enough last time, that I tried a new technique using the mill to do most of the work.  Unfortunately, one of the stators was critically damaged during my initial experimentation.  So, now down to 4 survivors.

4 good stators, one casualty, and their detritus
4 good stators, one casualty, and some detritus

I went and printed 5 copies of all the printed parts:


And turned down some more internal gears:


Then, I started assembling!

All the parts laid out
All the parts laid out for one servo
Inserts in back plate
Output bearing and internal gear installed
Outer housing fastened
Output shaft bearing installed in planet output
Planet output in front housing
Sun gear in holder, mounted on rotor
Planets assembled with spacer and bearing
Input bearing pressed into planet input
Planets and shafts in planet output
Planet input and stator installed
Rotor installed
Back housing test fit
Repeated 3 more times!
Repeat until I have 4!


Rebuild of gearbox assembly

After finally getting the darned thing apart, and printing a new outer housing, I went about re-assembling the whole mechanism.  This time, I tried to take care to make the future disassembly less painful.

To start with, I filed down the problematic outer bearing interfaces of the sun gear holder so that the bearings were a slip fit over them.  These two interfaces don’t need to be particularly snug, so that was easy enough, if monotonous, to accomplish.  I also machined out a some pockets around the magnet hole, to make it possible to just hot-glue the position magnet in place and more easily extract it.

Next, I re-installed the sun gear holder back in the rotor.

After that, I pressed the input bearing into the new planet input:

Input bearing in planet input

Then I went about installing the shaft output bearing into the planet output, the planet output into the output bearing, the planet shafts into the planet output, the planet bushings into the planets, and the planet bearings into the bushings.

Planet output and planet gears partially assembled

Those got dropped onto the shafts, and the planet input was stuck into place.

Planet input partially assembled

After that, the screws were installed in the planet input, and the stator was fit onto the front housing, using a shrink fit again:


At this point, I aligned the rotor and pressed it and the primary shaft into place.

Rotor installed

Now I used my paper strip alignment technique to get the rotor properly (or at least functionally) spaced from the stator.

Aligning the rotor

At this point, the rotor still didn’t spin freely.  Because of all the rework I’ve done, and my sloppiness in executing it, bits of the exploded bearings and other detritus had lodged themselves against the rotor and stator.  The problematic pieces were small, sub 5 thousandths, but still plenty enough to cause the rotor to hang when spinning.  These I carefully extracted under a microscope with a pair of tweezers.

Extracting !@# from the rotor

At this point, I had a gearbox that spun freely and seemed mostly correct!

Rotor removal, and complete disassembly

So, last time I had a functioning gear-train, I just needed to disassemble everything in order to replace the outer housing.  As I was putting things together, I realized that several custom fixtures would likely be needed in order to disassemble various parts cleanly.  Here, I made a giant 3D printed cylinder that the front housing and planet output would bolt to, and then the central shaft could be pressed out.

Rotor removal fixture
Rotor removal fixture

I somewhat skimped on the printing… even at 25% infill it took something like 14 hours, however the shaft should be relatively easy to extract since it is only held via a mild press fit with the output shaft bearing.  Or at least, it would have been had my mild press fit not ended up being tighter than desired, and had retaining compound not seeped over there.

My first attempt at removal just resulted in my carefully constructed fixture delaminating and the entire planet output and output bearing pushing into the assembly.  The shaft didn’t budge at all on the shaft output bearing.  Then, rather than wait for an even longer print, I installed all the washers on each of the bolts to better distribute the load across the fixture.  At that point, removal was accomplished…. kinda.  The fixture didn’t fail this time, but the planet input in the gearbox shredded.  Fortunately, that was enough to remove the rotor.  I could just print a new planet input, and toss the shaft which now appeared very well welded to its bearing.

Output shaft and bearing
Output shaft and bearing… note the green retaining compound everywhere


Rest of the disassembly

At this point, the rotor was removed from the stator, but there was still a fractional planet input attached to it, with the planet input bearing very securely fastened to the sun gear holder, and the rotor bearing, even more securely fastened to the sun gear holder.

First, I shredded the planet input with a pair of pliers.

Planet input, er… disassembled

Then, I was able to get the input bearing off by cooling down the sun gear holder with the compressed air again.

However, the rotor bearing was too well pressed on to achieve that.  So I ground it off with a cutoff wheel, after trying a few other things first.  At this point, I was finally able to remove the sun gear holder from the rotor, and call my disassembly, as it were, complete!

Rotor bearing removed
Rotor bearing removed

Rotor and stator alignment

Last time I covered getting to the point of having the rotor installed into the gearbox.  Here we’ll look at making it actually work in that configuration.

When I first got the rotor in place, it was clearly not centered properly.  Although much closer than in the plastic gearbox, it did interfere with the stator during a portion of a revolution.  The first obvious problem was that the primary shaft wasn’t making it all the way through the front shaft bearing.  That should have been an easy fix, but for two different very annoying reasons.

Reason 1

When I made the sun gear holder, one of the tweaks I made during my 3d printed iterations was to leave a hole where you could press on the primary shaft.  That was intended to be used to install it all the way into the output bearing.  Unfortunately, that hole is behind the position sensing magnet.  The one that I superglued in place last time overly eagerly.

That magnet has a recess in the sun gear holder which nearly exactly encloses it, with maybe only a few thousandths around it in all directions.  There was no way to grip the magnet at all.  I tried soaking the junction in acetone for some time, I tried using the heat gun, and in the process ruined the 3d printed outer housing, but none of those loosened it up enough to allow another magnet to retrieve it.

Eventually I pressed on the primary shaft from the front of the motor, and used that to pop out the position sensing magnet.

Reason 2

Now that I had the magnet off, I could press the shaft back into place.  Or at least I should have been able to.  I made it into the output bearing, but then the pressing became inordinately difficult.  I think even more so than in any of my test fits.  This may have had two causes… one is that I was using a dowel for the main shaft which is slightly oversized, and second the retaining compound had seeped around into the interior of the bearing, and fractionally cured.  Those combined made it both really hard to push the shaft in, and as I later discovered, impossible to press out.

Aligning the rotor and stator

At this point, I had the rotor installed seemingly properly, and it still was interfering with the stator.  After much experimentation, including partially exploding the rotor bearing on the sun gear holder, I arrived at a technique that allowed me to align them properly and simultaneously discovered that my intended mechanism for registering the rotor to the sun gear holder was, at the least, sub-optimal.

The sun gear holder has 4 M3 flat head bolts which fasten it to the rotor.  I had oversized those holes to 3.1mm, and put tapered countersinks on each.  I had planned on the countersinks forcing the rotor to be centered.  However, it didn’t look like that was working as I had expected.  Each time I would loosen up the bolts and re-tighten them, the rotor would interfere with the stator in a different way.  Eventually, I was able to center them by sliding slips of paper all around the stator between it and the rotor, then tightening the bolts down.

Rotor paper alignment
Rotor paper alignment

Then I spent a few hours, painstakingly under the microscope, picking out grains of steel that had managed to find their way to the rotor, most likely from when I partially exploded the rotor bearing.


At this point, the rotor did seem to be aligned properly to the stator, everything moved freely, and the gearbox worked as expected.  I just need to disassemble everything in order to install a new outer housing to replace the one I destroyed while attempting to remove the position sensing magnet.  That is its own story, for next time.

CNC machined planet output and front housing

Shortly after receiving the sun gear holders, I received the first iterations of the planet output and front housing.

20x of the planet output
20x of the planet output
20x front housing
20x front housing

Both of these seem to have actually adhered to the tolerances I requested, so thankfully it won’t be too hard to fit everything together.  However, getting everything together for the first time did involve a comedy of errors — a lack of planning for assembly order, a lack of foresight into how things would be *dis-assembled*, a stubbornly stuck shaft, and plenty of broken parts.

Sun gear holder assembly

The sun gear needed to be bolted into the rotor, and have a bearing installed that interfaces between the rotor and the back housing.  That bearing interface had a similarly poor tolerance as the interior interface from last time, and thus the bearing needed to be pressed on.  I had pressed one on as part of verifying that it would work at all, but then didn’t realize that the bolts to installed the holder to the rotor wouldn’t actually fit down.  I ended up grinding a flat on each bolt so that it could fit around the bearing.

Front housing

The front housing is slightly different than my original plan.  I was initially going to machine the outer housing included into the front housing as one piece.  However, having a shop do that turned out to be prohibitively expensive, both because of the need for a 4th axis, and also because of the depth of the part.  It was looking to be something like $500 per piece at ~20 quantity.  Thus, I simplified it into something that wasn’t very deep, didn’t need more than 3 axes, and had just the attachments necessary to maintain a rigid drive train.  I figured I could for now continue 3d printing the outer housing.

That said, the front housing still has a lot attached to it.  The output bearing fits in the central hole, the internal gear rests on the interior of the cylindrical protrusion, the stator rests on the outer surface of the cylindrical protrusion, and the outer housing bolts to outer recessed holes.  Additionally, in the future, the position sensing board will fit into the end of the cylindrical protrusion.

The internal gear ended up closer to a slip fit, which meant I needed to use retaining compound if it was going to serve any practical purpose.  That would also mean it would be really annoying to remove.  Fortunately, I did manage to install the output bearing before using retaining compound on the internal gear, as it does need to be installed first.  However, I didn’t manage to install retaining compound on the output bearing, which wasn’t exactly a slip fit, but did press out easily with my hands.  That would come back to bite me a bit later on.

Partially assembled front housing
Front housing with internal gear, output bearing, and planet output

My next, relatively minor problem, occurred when I was test fitting the stator in place.  That surface was within tolerance, however, the front housing still required cooling with an upside down duster before the stator could be installed easily.  I got overly excited and installed it before having the outer housing installed, so had to take it off again.  Then, after I had installed it again the second time, I realized I had not aligned the stator so that the phase wires lined up in the proper location on the outer housing.  That, I just let slip, which turned out to be fine, since I had to tear it all apart later anyhow.

Gear train

Next up, I installed the planet output shaft bearing.  It was a very loose fit, so retaining compound was used, and possibly applied too sloppily as evidenced later.  Also up were the planet gear shafts, bearings, planet gears with 3d printed bushing adapters, and the planet input with input bearing installed.  Those all came together fine.

Geartrain installed
Geartrain installed

Next I installed the rotor which had the sun gear holder attached.  It seemed to mostly fit, and looked like the rotor and stator would clear, so I got excited and super-glued the position sensing magnet onto the end of the sun gear holder.  That way I’d be all set to power up the controller.  Yeah, right, if only it were that easy!

Next up, my challenges in getting the rotor and stator aligned…

Sun gear holder shrink fit

As discussed last time, the sun gear holders I had CNC machined unintentionally had a slightly undersized bore that the sun gear was going to fit into.  The allowance was large enough, that there was no way I was going to press it into place as is.  So, I decided to try a shrink fit, but before I did I wanted to do some math to verify that it was possible with the temperatures I could easily achieve and that I wasn’t going to explode (or even just fracture) the aluminum part from over-stressing it.

All the math

Referring again to the Machinery’s Handbook, it has a formula for a steel shaft / cast iron hub, and also for a steel shaft and hub, but nothing for a steel shaft and aluminum hub.  I’ll just do a minimal derivation with some simplifying assumptions here to see how close it is.

First, I’ll assume a solid block of aluminum hub, and a solid shaft.  In actuality, the hub is only 15mm external diameter, and the shaft (sun gear), is hollow with a 4mm internal diameter.  Next, 6061 aluminum has a yield strength of 386MPa, I’ll aim for 200MPa maximum.  The modulus of elasticity is 68.9GPa.  That works out to 200MPa / 68.9GPa = 0.0029 mm of shrink per mm of diameter.  Thus for an 8mm diameter shaft, I could have a maximum shrink of 0.023mm.  My shaft is 7.998mm, which means that the holes should be no smaller than 7.975mm.  I have some parts that big, but maybe only half of them.  However, given that my simplifying assumptions were conservative, I’m probably in the right ballpark for all of them.

Giving it a try

I don’t have any dry ice on hand, but I do have compressed air canisters and a heat gun.  So I pre-cooled the sun gear in the freezer.  Then I heated up the sun gear holder with my heat gun set to maybe 260C.  Next, I turned the compressed air canister upside down and performed a final cooling pass on the sun gear holder.  After that I — very quickly — set the holder and gear on my press and forced them down together.

They fit!

Sun gear mounted in holder
Sun gear mounted in holder

Granted, there is probably no way I am ever taking them apart now, but I guess I don’t have a pressing need to try.

Gearbox first CNC machined parts

As seen in my draft plastic assembly, the required alignment between the rotor and stator in the gearbox is relatively tight.  The difference in diameter between the inner race of the rotor and the outer surface of the stator is only about 0.2mm, which gives 0.1mm of clearance in normal operating conditions.  A plastic drive train was never terribly likely to succeed.  My next steps have been to machine the pieces of the gearbox critical to alignment out of aluminum, so as to ensure that the rotor and stator, (and also the gears) are held within some approximation of appropriate tolerances.  The path of joints between the rotor and stator looks roughly like this:


The rotor attaches to the sun gear holder.  The sun gear fits inside the holder, the shaft fits inside it.  The shaft then fits into a bearing (unpictured above) that is inside the planet output.  The planet output is then fit inside the output bearing, which fits into the front housing.  The stator rests on the front housing.  The rest of the components are necessary to transmit torque to the planet gears, or mount the overall motor, but I currently believe they shouldn’t be critical to maintaining rotor and stator alignment.

To verify that this would indeed work, I’ve sent off to have the sun gear holder, the planet output, and the front housing to be machined in 6061 Aluminum.  I ended up using Xometry, which just farms the CNC jobs out to shops across the country.  This was my first time using them, or having any parts CNC’d for that matter, so I was a little paranoid about getting appropriate drawings in place and trying to get all the tolerances into a suitable state.


In this drive train, there are several joints between parts that matter from a tolerance perspective.  The sun gear fitting into the sun gear holder, the shaft bearing that sits in the planet output, the output bearing surface on the planet output, the bearing surface on the front housing, and the stator surface on the front housing.  Ideally, each of these would form a relatively rigid connection under load.  Thus I wanted to have something close to an interference fit.

The first part I made was the sun gear holder, and its primary interface is with the sun gear.  The sun gear has an 8mm diameter, and my micrometer measured one sample at  7.998mm.  Looking at Machinery’s handbook 30th edition, there is this chart showing standard tolerances for metric fits.


Then, for an 8mm shaft, the tables list:

Close Running Sliding Locational Clearance Locational Transition Locational Interference Medium Drive
8.035-8.013 8.020-8.000 8.015-8.000 8.005-7.990 7.991-7.976 7.983-7.968

However, using the quick turn Xometry feature only allows one to specify tolerances in the tightest as +- 0.001″, or +-0.025mm.  +- 0.025mm is more than the entire range between the lowest size medium drive hole and the largest locational clearance hole.  I also wasn’t exactly sure how rigid things needed to be, and didn’t want to mess with shrink fits or further post-machining operations, so did my initial drawings erring on the side of having too much clearance.  I figured I could always use some retaining compound if need be.  Thus I specified +0.04 -0.01 for that particular interface.

First parts

1 week after submitting CAD and drawings the sun gear holders arrived in the mail!

Sun gear holders
20x Sun gear holders

I also was surprised to receive an inspection report!  Xometry claimed that I needed to pay extra to get one, so receiving it was a pleasant surprise.  Reading the report, the measurement on the bore was claimed to be 7.99 or 8.00 for all 20 parts.  So, I broke out my telescoping gauge and micrometer to measure that critical shaft interface myself to double check.

Lo and behold, smaller than I had specified, and right at the bottom end of a medium drive fit.  Sure enough, the sun gear felt like it was going to take a significant amount of force to install.  I went through and measured the dimensions on the first 10 parts using the same technique, for each part measuring at 4 different radial angles.


Overall, that is a relatively narrow spread, just +-0.015mm, however it is centered out of the tolerance band I had specified.  Granted, I may not have yet mastered my telescoping gauge measuring technique, however, the impossible to manually press in gear seems to validate my results.

Next up, trying to assemble the sun gear into the holder anyways.

Draft plastic gearbox assembly

Now with the post machining operations complete (disassembly, stator, rotor, internal gear), I used all the plastic printed pieces to put together a fit test article.  I wanted to use this to verify that all the pieces would not interfere and would function correctly and had an outside hope that the result would be functional.

Plastic gearbox parts on build plate
Plastic gearbox parts on build plate
All support removed
All support removed

You win some, you lose some.  Here, the test article did verify that everything fits together seemingly well enough.  However, the printed plastic deforms enough that the rotor isn’t held away from the stator, so it didn’t make sense to try powering it up.

Here’s a video of spinning the planetary gear assembly:

And a few pictures of the assembled unit:

Gearbox plastic test article

Gearbox plastic test article