Strain wave gears offer the ability for reasonable speed to torque conversion for cheap motors like smaller steppers and RC servos. This could make the gear a useful part of a 3D printed/home fabricated robot arm or rotary table. In theory, there is minimal backlash, compared to standard gears, and they can be rather compact for the high gear ratios they achieve.
The first key problem I see for those wanting to make one of these gears with a 3D printer is that the splined "cup" part of the design needs to be flexible and even if you master the printing of it in flexible filaments, this part is unlikely to hold up to the bending cycles required for a useful lifespan.
Enter timing belts. They are effectively "bendy gears". Turn a closed timing belt inside out and you have the makings of the splined cup. The next key challenge is rigidity...
Hackaday.io is the perfect place to ask for help taking this concept and overcoming remaining challenges to making this suitable for homebrew robots:
What's the best way to make this rigid enough to be the first and/or second degree of freedom in an arm? All sorts of slewing moments to overcome.
What range of prime movers can we use here - geared DC motors, steppers, RC servos modified for continuous rotation?
Could closed loop systems be easily integrated? E.g. move the potentiometer from the continuous rotation servo onto the axis of the gear, coupled to the two main gears (not the wave generator) for greater control at low expense.
I'd love to accept project team members - I'm not precious about this at all. All I would ask is that if you have the ability to try out your idea please do that and post it afterwards rather than filling the comments with hypothetical options. If you don't have the means to try something yourself, by all means use the comments to make suggestions.
I thought some who are following along may want to see the internals of one of the gears as the YouTube videos aren't the easiest format to do detail.
BLUF, this gear failed to produce torque beyond the same torque that the first hypocycloidal gear produced, at a torque ratio of 1:14. The difference here was that the belt/cycloid discs started skipping past each other, rather than the motor stalling. I'm not sure whether this was wholly damning of the use of timing belt because:
The belt was only gripped on one side - a more patient design (which could be bothered to wait for bearings in the mail) would have gripped the belt along both edges.
The belt was HTD 3M, with a tooth depth of 1.2 mm. This means a small amount of play in the cam/cycloid disc and wider assembly could lead more easily to skipped progression. HTD 5M could perhaps improve this.
My lack of patience during design meant that there were more structural parts than required (e.g. the cross brace holding the bearing on the front) which a more considered design could integrate with other printed parts, reducing the opportunity for flex and misalignment at the interfaces.
Read to the bottom for a head's up on what I'm planning to try next
The assembled assembly
This shows that I have been more thoughful about applying the torque through a lever (6mm threaded rod - v.bendy, which is pleasing as it makes it look like it's lifting a large mass when only small one's are attached - a good visual cue for the torque) that is lined up better with the supporting bearings than the first prototypes which had it offset from the bearings, on the outer face.
A difference, which I think may be significant because it allows the outer ring to be the output drive, is that the motor is floating inside the main 6011 bearing, so the outer ring is usable as an output now. This means the internals can be well supported from either side, as you might desire in a robot arm. Here, the stepper motor body is clamped to the bench but you could easily extend the plate it bolts to, down to a base. There's an opportunity to use a larger bearing on this side and extend the plate inside (you can just see the countersunk screws in the corners) to the outside and supporting frames. You can see the static plate which binds what are usually the output pins here:
As usual, the M3 square nut and grub screw do sufficiently well to stop the motor shaft flat from freely rotating without driving the cam, although some rotation has clearly happened.
Here, you can see what's inside when you remove the ring which is holding the HTD belt by one edge:
The square "output" pin plate is bolted to the mounting holes in the stepper motor's body.
Now remove the white output ring; you can start to see the very slight eccentricity of the cam. Because it only varied by 0.6 off-centre in each direction, it was able to be printed as one piece. However, the bottom bearing would only go on from the underside.
All the parts so far:
Now, the "output" pins are made from 5mm OD alu standoff/spacers from electronic component suppliers like RS Components. Not too expensive and they allow some rotation in a bushing mode. However, on M3 threads they do have some play. This is a shot where you can see how that output/stator pin assembly looks:
Here's what you get when the cycloid disc and cam shaft sub-assembly come off:
And here's a view of the main ring bearing mount for the stepper motor (right), along with the re-assembled cycloid disc/stator pin sub-assembly (left):
Rear view, as above but with the motor installed and the white outer (output) ring clamped in place around the outer bearing race to the black outer ring:
That's all the photos for now. Hope they were of interest to some of you.
Additional point of interest is that my original four output holes in each cycloid disc were too large and it led to slop of a degree or few in the output. This was improved to no noticeable slop when I reprinted those two discs...
Is this the next logical step? I was surprised by the torque efficiency of the hypocycloidal gear I made in the Hesitation, Repetition and Deviation log, so perhaps it's worth pursuing for a bit. Until today, in conversation with @Dan Royer I hadn't realised that a possible advantage of these hypocycloidal and strain wave gears is that when you want to DIY one you can design it so the output and fixed part are transferring torque relatively far from the axis compared to a gear with a conventional shaft output.
The setup above is just a concept tester, made with a 210mm (70 tooth) HTD 3M continuous belt, constrained within a printed PLA ring that has a toothed recess in the base to hold the belt in place and prevent it from rotating, relative to the outer ring. The back face of the outer ring is bolted to the NEMA 17 stepper motor housing in the usual four holes.
The belt teeth take the place of the ring pins in a conventional hypocycloidal gear. The cycloidal disc has 69 teeth, hence this is a 69:1 gear ratio.
This could be scaled up to a 100:1 with a belt length of 303mm and a diameter around 100mm. 100:1 would, if the components handle the forces, get the baseline NEMA 17 with 59 Ncm holding torque to the order of 20 Nm being targeted by #5+ Axis Robot Arm Study No.5. If the parts can't take it (which I imagine they won't) we could step up to HTD 5M and the diameter of the belt would be around 160mm.
Promise I'll get round to showing the strain wave gears soon. Let me know what you think of this approach in the comments.
...sorry about that. Definitely counts as hesitation (ps the title is tribute to the British comedy radio contest called Just a Minute).
This log may not be satisfying to everyone following the project. Just to update you, I returned my attention to this project in December when @Dan Royer asked about whether it could be used in his new design of robot arm. You may recall that only @Ken Kaiser had put a motor in his gear up to this point. What you didn't know was that shortly after my "getting stronger" log/video, I made a version of the strain wave gear with a large bearing (a 6011 ZZ 55mm X 90mm X 18mm ) and built it around a "standard" NEMA 17, 59 Ncm stepper motor frequently found in 3D printers. I'll show that in a future log as that's the repetition part (more strain wave gears and variations upon the design of the wave generator).
In this log, I want to share with you the deviation part - I made a hypocycloidal gear. With a motor. The very same model of motor I put in my motorised strain wave gear. The reason, you see, for heading off down the hypocycloidal gear route is because on the one hand you have people showing home-machined hypocycloidal gears on YouTube that appear to work very nicely and on the other hand you have #5+ Axis Robot Arm having to give up on $3k development because they couldn't get theirs to work. What was the difference? Well one aspect was load. The people on YouTube (like ZincBoy or RockyMountains2001) aren't putting their gears under load. Dan's robot arm needs to be able to apply forces both to lift its own weigh but also to have an effect on its environment.
So, the basic designs online have one cycloidal disc (see the diagram in Dan's project log for common terms). Dan also complained that as soon as load was applied to his developmental gear, there was binding between the cycloidal disc and the ring gear pins. I also happened to see AvE's teardown of a nice Sumitomo cyclo gearbox / torque multiplier where he explained that a second cycloidal disc was used 180° out of phase with the first one, to prevent vibrations at high speed.
These two got me thinking and I decided to use a second cycloidal disc and bearings for the ring gear pins. Here's a single disc prototype:
You can see here how there are 10 ring pins/bearings. The cycloidal disc has 9 "teeth" or nodes, so that's a 9:1 ratio (I think). Now encouraged with this version, I designed another version with two discs and 11 nodes on each disc (12 ring bearings). I used four 6805 Thin Section Deep Groove Ball Bearing 25x37x7mm, which went in a stack of (from stepper body outwards) output disc backplate, cycloidal disc 1, cycloidal disc 2, output disc ( with output rollers x 3 mounted. You will notice that the diagrams and models rarely show the output disc/shaft because they tend to prevent you from seeing the mechanism of the cycloid discs following their hypnotic, eccentric path. However, if you're going to harness the torque, you need the output disc/shaft. The other foreign part name in that bearing stack was "output disc backplate". I put an almost identical disc to the output disc behind both cycloidal discs for the shafts of the output shaft rollers to screw into and add strength to the output. Here's a photo of assembly after the first cycloidal disc went on (of an interim prototype, so you can't see any output disc backplate):
The two holes either side of the shaft are locating and clamping holes for the stack of eccentric and centred discs that go on top. This is especially important because the shaft isn't long enough for four 6805 bearings stacked up! You need to take care with this stack arrangement that the holes are lined up either side of the shaft flat face, so that the clamping nut/grub screw can locate the flat later.
So now we want to see how much torque we can convert from our stepper motor. But what are we comparing this gear to?...
Here's a stronger version of the first design revision which uses a lazy susan bearing (the video thumbnail might show the proof of concept - watch the video to see the new design).
There are promising signs this could be useful in a compact arrangement, e.g. a small robot arm base. It felt like there was room to reduce the friction but you can't ask too much too soon! Where should we go next with this?
608, OD 22mm outer diameter, ID 8mm core, and 7mm wide
PLA, not the best material, but forgiving
3mm nuts with set screws
M3 screws to attach stepper to gear
Using the parametric design I printed exactly the STL output. The parametric model was designed and mainly checked against an HTD 300-5M-20 that I used here. I added space for nuts on the wave generator and set screws. To assemble the wave generator 3D-printed pins for the bearings with a spot for snap rings.
Tooth spacing / depth
8mm / 3.38mm
5mm / 2.06mm
3mm / 1.17mm
The picture shows the belt teeth against a millimeter tape. So far is seems that 3M belts require the gear to be too precise and don't deal with forces, 5M seems like a good mix for prototypes.
Using a 20mm wide belt, gear parts should be less than 10mm each when the sides are assembled there isn't friction between the two halves.
I used a Arduino MKR1000 using the Timer5 library, controlled by the Blynk app. The sketch controlled a DRV8825 stepper module. I can make details available upon request. Here is the configuration of the Blynk app:
I can feel there is more torque on the gear output. What is an effective way to measure torque? I have 5M and 8M and belts of different diameters.
I would want the stepper speed and current to the controlled/captured at the same time. A current sensing resistor supplying the input of an op-amp, conditioned, then captured by the ADC, should work but is there an easier/better way?
A laser diode mounted on the gear output pointed at a wall would allow measurements to find the effective repeatable resolution. Then finding out what force results in what loss of resolution or repeatability.
I just wanted to say that I've tried cutting the HTD 5MM mount ring in my new CNC in 9mm plywood and it seems that when I place it over my first design revision there's a 1-2mm gap/play between the belt and gear. This isn't supposed to reflect at all on Ken's amazing work with the parametric generator, especially as it's mounting his design (at least of the tooth profile) on mine. But another initial build also reported some play, so I thought I'd post early findings.
Please ignore the missing teeth - I was recycling previously-cut scrap plywood and I don't think the missing sections contributed to the play I report above, even though the photo shows the wave generator aligned with a missing portion of the gear.
Has anyone else tried printing/cutting any gears? I quite like the speed of the CNC as it took about 23 mins to make this ring, which is going to be much more suitable for a "rigid" version of this gear than the 3D printed one I started with (and about twice as fast). There's room for both techniques but strength is definitely going to be helped by a larger outer diameter on the mount gear and an additive process is going to lag behind a wasting process when making larger parts from sheet stock, in this scenario.
[edit 22:31 27/3/17]
In response to Florian's comments, I thought I'd add a couple of screenshots comparing the CAD from the parametric generator and my first revision design.
In the parametric generator, the diameter around the inner points of the teeth is 100.47mm and in mine it's 100mm. The gap for the belt teeth is narrower in mine (grey) than in the parametric generator (purple).
Anyway, the beauty of a parametric generator is that you can easily change all of this!
This is based on the design of a strain wave gear, but it not an exact copy of a strain wave gear. Strain wave gears characteristically have an oval wave generator, a flex spline cup, and a circular spline. The wave generator engages 1/3 or more of the teeth at the same time. It does not seem attainable to engage that proportion of teeth in this current design.
The input gear that matches the belt teeth is in the back dark blue/purple, the output gear with +2 teeth is pink.
As you can see, the second bearing would be forcing the belt into 1/3 of the tooth of the outer gear, at the gears are positioned right next to each other. The belt tooth is directly over the output gear tooth at tooth 15 into a 60 tooth belt, a belt that is 300mm long with 5mm pitch.
The first revision increases the area that would engage from wider bearing(s) and belt. What is the force transmitted by a single tooth?
This design is a game changer, but we have to test torque. Even if this design can't handle torque, there is optic positioning, and anything that needs precision movement. I can see the times where I'd trade the speed and torque of a 200 step stepper to get 6000 steps of resolution from the simple gear in the videos.
Have your design parametrically generated for you. Belt, bearings, export STL to print, and assemble with hardware.
The model still needs some debugging, and set space for mounting hardware.
I didn't make this a more collaborative design, because I wasn't sure l could actually contribute anything. There are juggernauts of talent, having years of specialized training or 30 years of experience (or both) in a field, which is awesome but intimidating. I am pleased with how it turned out, but I don't imagine that it can't be vastly improved, so an obvious comment to you might make a huge difference to me and this project. As well, I am an example that anyone can contribute to this project so please do, join and contribute.
The model is not finished. I am going to break out specific posts in the coming days, specifically on the design of the tooth gears and the center wave generator. What is known so far, what are the trade offs, and what can be worked on in the future, keep up to date with this project if it interests you.