Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!


by takigama, published

WormStruder by takigama Aug 7, 2012
4 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



WormStruder by takigama is licensed under the GNU - GPL license.

Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

24917Views 6599Downloads Found in 3D Printer Extruders


WormStruder, as the name suggests is a worm drive based extruder. Takes design queues from Gregs and its derivatives, and utilises syvwlch Worm library for openscad. Uses a modified idler attachment without a screw (at the base). The body of this Extruder is around 15mm shorter (without motor) and 5mm narrower then a standard Gregs Accessible, but can use most of the same parts.


Update: Changed layout significantly, added filament feed hole
Update: Added groovemount for jhead, added derivation info
Update: Added arcol mount option
Update: Changed idler screw holes to M3's
Update: Added 1mm radius to base of worm gear cause grub screw was causing it to crack (on my print)
Update: changed the layout of the idler tension screw holder in the body (screw holes were a bit too tight and the sub for the bolt went back to far). Added a quick release to the top of the idler screw mechanism.
Update: forgot to rotate extruder bodies before upload
Update: modified extruder body, fillament feeder hole moved, filament hole widened at top, new idler mount holes. New idler design.

Version 2
So i've completed a rather annoying redesign in freecad so i can change the base layout quickly.

I have printed this and it does work however, i've not used it to print any objects yet so be prepared for it to fall apart, chew your printer to pieces and eat your household pet! It is most definitely a work in progress and treat it as such. The gearing ratio on this machine is variable depending on the gear you use (you can also create your own gear set from the code - this is quite simple, see below), but with the standard gears will vary between 1:15 - 1:18 (the standard Greg's accessible is around 1:4 or 1:5 from memory), so prepare for a really heavily geared down extruder (is it a good or bad thing? wont know until i do some prints). Its a little noisier then normal geared extruders. Currently designed around the jhead hotend (as in the top that extends into the extruder), im not sure what other hotends have similar dimensions but if yours doesnt fit or you know the differences in way i can easily understand, im happy to design a fitting for it.

All STL's are repaired prior to being uploaded.

How to build this:

You will need the following "bits"
2 of M3x50 - Idler tensioner bolts
2 of M3 Springs of appropriate size (or rubber grommets).
2 of M4x?? - for mounting on your carriage/hotend (if you have a gregs extruder currently, the same bolts should surfice)
2 of M3x10 - stepper motor mounting screws (replace with whatever suits you really).
3 of 608z (or similar) 8mm bearings.
1 of idler bearing mount bolt as used on most Greg's and derivatives (optional)
2 of M3x30 - for groovemount option

You will need to print the following:
Worm Extruder.stl
Worm Extruder - Tensioner.stl

and one of the gearonly stl's (15, 16, 17 or 18 teeth, for a 1:15-1:18 gearing ration), i suggest the 16 or 17 for now (or print them all and see which one you like!).

Put the thing together in the same way you would put together a Gregs accessible extruder, leaving the stepper motor till last. Stepper motor only uses 2 mount holes (for now).

The worm has a big circle at the bottom, this is there simply for printing purposes and can be removed post-print (it may not actually be required). The worm should also print just fine with no support (though, make sure your using a reasonably newish version of slic3r - one that prints perimeters from the inside outward).

Optional bits
You can print the Worm Extruder - Idler Bolt.stl if you wish (its just a simple plastic replacement for the metal bit thats in most extruders, i found it worked ok)
You can also print the "Worm Extruder....Spacer....stl" file, you might find this works better for you if you have a Gregs or Wades hobbed bolt as its sized to move the hobbing to the right location in this extruder.

Creating your own gears - pull down my git repo (see below), go into the directory, FromOpenScad/syvwlch-worm and edit the makefile, at the top of the makefile there is two lines:
Changing these will change the worm/toothed gear and next you type "make", this should produce two stls in the "stls" directory called "wormonly-TEETH-RADIUS.stl" and "gearonly-TEETH-RADIUS.stl" where TEETH and RADIUS are the values you put in the makefile (these are the two most important values for changing the gears. You can edit other values by opening up worm-gears.scad and modifying the variables at the top of the file.


  1. Originally, all the steppers I use are Rattm's but recently i stumbled onto a smaller motor called a vexta c4041-9012 (seen on this page http://www.duke.edu/web/isis/gessler/topics/steppers.htm). You can see the motor in one of the pics I've attached, its got about half the size and torque of a rattm. I bought it simply to see if it will drive this extruder so one of my first todos is to attach that motor (when i can get the gear off it which is proving a tedious task)

  2. Figure out how to get 3 motor mount holes going.

  3. Add design work for alternative hotends.

I originally decided I wanted to do this for no good reason i can remember and spent quite some time with the brilliant openscad libraries generating STL's, importing them into freecad so I could come up with a (rather complex and large) design for a worm gear that could print and attach to a stepper - this was all in vane as the worm prints quite well without modification or support and standing up.
Once i'd completed it, I decided I might as well print the rest of the parts, hook it up and see what happens. I expected it to rip itself to pieces in several ways - I printed the body with zero infill and the gears/idler with 50% infill. I half expected the lack of any substance to the extruder body would tear the idler mount straight off when i tightened the idler, i also expected the worm would tear the teeth off the toothed gear and/or the worm would break off the shaft of the stepper. None of these things happened, in fact it extruded very well on my 0.35mm jhead hotend. You can also see in some of the pics where i've not changed the brim settings after printing the worm (5mm brim) and so the gears have lots of little thin chunks of brim hanging off them from where the worm gear shredded them (nice way of removing brim from a print!).

The original files for this GPL'd object exist under https://github.com/takigama/pjrun/tree/master/WormScrewExtruder and https://github.com/takigama/pjrun/tree/master/FromOpenScad/syvwlch-worm

The body and idler are done entirely in freecad, the worm and gears are done entirely in openscad. The openscad components are dependent on syvwlch's worm library (https://github.com/syvwlch/Thingiverse-Projects and http://www.thingiverse.com/thing:8821), the general layout of the body takes queues from many of the Greg's Accessible+derivatives extruders (See http://www.thingiverse.com/thing:8252).

More from 3D Printer Extruders

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

This App connects Thingiverse with Makeprintable, a cloud-based mesh repair service that analyzes, validates and repairs most common mesh errors that can occur when preparing a 3D design file for p...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App


I have downloaded the worm library that you have used, would you be so kind to post or send the code you have used in openscad to create the coupling to the engine?

Thank you.

Could you upload the freecad design files? I'm a freecad user : ) I'm trying to remix this design. The idea is to modify it for delta printers, but then to put a speedometer cable between the motor and the worm screw, kind of like how the flex3drive works, but then for delta printers, and of course, a whole lot more printable and cheaper.

Needs more support for the motor would be my biggest issue..I found that wedging some scrap 8mm smooth rod on the long section that supports the motors weight helps it from bouncing around..

Seems like this would work best with a low micro-stepping, maybe not even do any microstepping at all and just leave it at 1x. I plan to use this for a bowden setup. One gripe though, can't use a regular M3 for the worm gear. It gets stopped by the frame when rotating, figure im going to have to grind away the head and just cut a groove into so that it get's screwed all the way into the worm.

I've tried to print the worm but the edges tend to bend up while printing and the result is not as good as I'd like.

Any advice / slic3r settings?

If you are printing with PLA you are going to need a fan to cool down the print

oh well, seems like an abandoned thing...

Not abandoned, just busy with other things at the moment

I'll snap pictures latter, but if you have a guideline to printing with support that works, great! (layer height, support pattern, number of  perimeters, infill density, suport material spacing...) thanks for your reply. II'm only asking because 2 of my prints failed on the body. probably me being dumb....

I'm really interested in testing this, but I already tried to print 
the latest version with suport materials, but it failed miserably. 
So if you have directions as to how I can print this, I'm all ears.
if not, thanks anyway...

I just printed with support, where abouts did it fail? got any pics?

how did you manage to print this?
using support material? 
look at the hinge tabs (where the extruder body touches the idler) , its a huge overhang. no orientation seems possible this extruder body...

It will be very interesting to see the impact of the different friction on the worm gear.

The standard extruder sees mostly static friction and therefore has minimal wear. In your design, the worm now slides over the teeth to produce the movement.

It may require some sort of lubrication to avoid wear.

I was planning on using lubricant if i were going to use it long term myself (for now i've left that out simply to see how long the thing will last and see where it's gunna wear/fall apart).

Yes, it is known that worm-based gearbox have a very poor efficiency (
lt;0.5) , because of friction. But it is a nice way to get an important ratio in little space.

Nice design! I think you could use a smaller motor, like a Nema 11 size, to reduce the extruder footprint.

But is the worm strong enough? The strenght may delaminate it...

takigama - in reply to

I was wondering the same thing myself, only way i'll find out is if i notice some wear. I did design both the tooth and worm gear with as large as possible teeth to try and avoid that, but there are other solutions. I have some impla from diamondage that should withstand the wear quite well, failing that i have some himpla coming too (tougher again). Alternatviely its a case of "print a few spare gears, you'll need them"

fma - in reply to takigama

Another solution would be to print the worm in 2 parts, in the other direction, and glue them together. The layers will then be perpendicular of the strength direction.

takigama - in reply to

Originally, i did actually do just that and backwards in the git history you can see where ts a 3-part print (motor mount and 2 part worm gear), it gets quite complex to do that though and you either end up with a huge gear or something that doesnt mesh together well.

fma - in reply to takigama

I see...

What printer/hot-end are the mounting holes designed for?

technically it should work with just about any head that uses a 50mm/m4 mounting plate (i use jhead)..

No idea if ToM uses a "50mm/m4" plate.

50mm/M4 refers to the standard RepRap extruder size - The mounting holes are exactly 50mm apart, with M4 nuts embedded in the extruder. The hotend is mounted in the dead center between the mounting holes.

The TOM's extruder looks like the motorized part uses a similar mount, but i'm pretty sure it is different enough to not fit RepRap extruders.

I thought the ToM had a very different extruder setup? im not sure you could fit this thing on there easily

Video Please!! I just want to make sure when I build it, that it sounds and moves correctly.

Will do soon

lt;- two thumbs up

Add a simple filament guide screwed to the top of the motor.

No holes for the hotend screws?

uploaded a groovemount version now also.

Thanks, I'll add it to my print list...

I've uploaded a new version, still havent added groovemount, but i'll get that done shortly... theres also the option of using the jhead mount plate here, http://www.thingiverse.com/thing:26355http://www.thingiverse.com/thi... (i had a quick go with that and it works quite well). Has a fillament feed also now.

J Head Mounting Plate

Glad you like it :)

There are 2 for the standard 50mm/m4 ones... the hotends i've used all kinda swing around those (like the jhead has a plate that connects between the extruder and hotend using the same screw holes)... happy to add other hot end mounts, i just dont know what they are in terms of sizing and so forth
(i know arcol has a different one, but only cause i remember seeing Greg's being modified for it).

See http://www.thingiverse.com/thing:27887http://www.thingiverse.com/thi..., the two holes at the side near the hotend recess. If you check the scad file it shows positions for a number of extruders.

The bit at line 887


module wildseyed_mount_holes(insulator_d=12.7){



// Recess in base

for (hole=[-1,1])


With insulator_d=16 allows a jhead to b
e directly mounted (the screws fit though the slot in the hotend), also a Printrbot Ubis hotend and I think some others. Let me know if you're not into OpenSCAD.

Just above that code is positions of various other h-e.'s

Greg's Hinged Accessible Extruder With New Motor Mount
by jsturm

Oh i get whats going on now i think, the holes are so you can drop the mounting plate off a jhead? (like the wooden bit used here http://wiki.arcol.hu/arcol-hu-hot-end-v4-assembly)http://wiki.arcol.hu/arcol-hu-.... The screws coming in from the side go thru the flange at the top of the hot end?

oky doky i get whats going on now, i'll have a new design coming up soon that should fit for most things.

Looking at hot ends has given me some food for thought, and im going to redesign based on a new idea... probably take me a few days.