A new extrusion system

Belt driven extruder diagram

As it stands right now, there are two main extrusion systems – bowden and direct drive. Each comes with its own advantages and disadvantages, which is the reason why both still exist. The main disadvantage of direct drive is the higher moving mass, which is the reason why the bowden system was created. By moving the extruder motor and entire extrusion system away from the hot end and attaching it all to the frame instead, the moving mass is greatly reduced. This allows us to reach higher print speeds with a lower momentum. Moving mass here refers to any part of the system that moves on the x or y axes with the print head when printing, for example the x carriage.

The disadvantages of a bowden system arise due to the filament having to be driven through a tube before it is extruded. Compression of the filament in this space must be accounted for, which becomes especially hard with flexible filament. Depending on the hardness, some flexible filaments aren’t possible to print with a bowden system at all.

Currently available solutions

All of that is fairly common knowledge with 3D printing and pretty self explanatory. Ideally we would have the drive gear for the filament right before the hot end, but the motor attached to the frame. This requires some way of transferring the motor torque from one point on the printer to another. A number of solutions have been invented that already do this, such as the Flex3Drive and Zesty Nimble, which utilise a flexible drive shaft. I have also seen a couple of other interesting methods which I’ll describe a bit too.

Flexible drive shaft

This system uses something like a metal braided cable to transfer torque force, but still be capable of bending. This allows a stepper motor to be mounted to the frame and attach to one end of the cable, and the other end of the cable attach to the extruder drive gear just above the hot end.  It seems like a simple idea that should work well, but there are a few downfalls which I believe are the reason that these haven’t really caught on yet:

  • They’re expensive. A Flex3Drive system for a Prusa printer costs approximately $100, and the Zestly nimble system is about $110. For a small set of parts, this seems like quite a stretch.
  • They’re proprietary. These systems aren’t just STL files that you can just print for yourself and build. They include proprietary components which can only be purchased from the respective company.
  • The design isn’t that simple. If someone was to make their own DIY version of these systems, it wouldn’t be easy. Both products use a gearing system to reduce rotational backlash in the flexible drive shaft, as well as custom mounting solutions for the components. I predict that the conversion of rotation from the flexible drive shaft to the drive gear on the extruder side would also be quite complex.

Flying extruder

This system is quite common on deltas, but I’ve also seen it on some cartesian printers. The basic idea is to suspend the extruder just above the hot end, such that it moves with the print head, but isn’t directly attached. It’s a combination of direct drive and bowden. This takes the weight away and reduces the moving mass, but the path between the extruder and hot end is still connected by a small PTFE tube.

Delta flying extruder
Here is a GIF of how the flying extruder system works on a delta printer, seen here

“Zero Gravity” direct drive

Another interesting system that caught my eye is the zero gravity direct drive. It’s quite a simple concept, but a little difficult to implement. Full details can be found here. Essentially, the extruder motor is mounted to the frame with a long shaft connected to it. This long shaft threads through a corresponding hole in the print head, and then turns the drive gear from this. Here’s an image of the system on a cartesian printer:

Zero gravity extruder

A new alternative

I would like to suggest another alternative that I believe could be the most superior solution. I still need to test whether this system would impose substantial friction on the x axis movement and if it would have any backlash effects, but it would be quite easy to implement as it uses common 3D printer components (such as belts, pulleys, etc). My suggestion is what I would like to call a belt driven extrusion system. I will first explain how this system could be implemented on a Prusa style printer, and then expand on what could make it better than any other available solution.

In a Prusa style design, the x gantry moves up on the z axis, the bed moves on the y axis, and the x carriage moves on the x axis. The x gantry consists of two 3D printed parts – the the motor side, and the idler side. On the motor side is the x motor, and on the idler side is the x axis belt idler pulley.

With my belt driven direct drive system, the extruder stepper motor would be mounted on the idler side, in a similar fashion to how the x motor is mounted on the motor side. It would also be attached to a belt which loops around an idler pulley on the motor side. Basically creating a duplicate of the entire x motor, x belt, and x idler system, but for the extruder axis. The motor, belt, and idler would be positioned slightly higher than the x belt so that they do not touch. If this is difficult to understand, below is an illustration of what I have described so far:

Belt driven extruder diagram

The next part is the addition of the x carriage, and how this new extruder belt will be used to drive the extruder. The x carriage movement system will remain the same, but three pulleys will be added onto the x carriage. As the extruder belt moves, this will turn the pulley which will turn the drive gear. The other two pulleys are there to ensure that the belt is fed directly over the driving pulley, as shown below:

Belt diagram

The belt will need to be a closed loop belt in order for this system to work, so that it can continue through an infinite number of revolutions. For this reason, a belt tensioning system will need to be implemented. The drive shaft will most likely be 3D printed, as flat edged metal shafts are surprisingly difficult to come across. I will need to do some experimenting to find how the 3D printed shaft works out.

The next factor to address with this system is the motor movement. If the extruder motor doesn’t move when the x motor moves, then this will result in unintentional extrusion as the x carriage is moving past the stationary belt and making the pulley turn. The movement commands sent to the extruder motor will actually have to be the same as the x motor, plus any extrusion distance. This will require a change in firmware, although I don’t think it would be too complicated. I’ve created a feature request on the Prusa github here for anyone interested.

Here’s a rough BOM for the change to a belt driven extruder:

  • New motor side printed part
  • New idler side printed part
  • New x carriage printed part
  • Closed loop belt
  • 2 teethed pulleys (1 for extruder motor, 1 for drive shaft)
  • 3 smooth pulleys (2 for x carriage, one for idler pulley)
  • 6 M3 screws (3 for extruder motor, 2 for smooth pulleys, 1 for idler pulley)


So why is this system any better than the others? I believe there are three main reasons:

  1. It takes the weight of the extruder motor away from the moving mass
  2. It allows the drive gear to be directly above the hot end.
  3. It only uses common 3D printer components

This looks to be the best combination of all the systems I’ve sound so far. I think this has the potential to change the way that extruders are implemented on the next generation of desktop FDM printers, but it does still have a bit to go before it’s ready. I will need to test how the 3D printed drive shaft works in terms of reliability and flexibility, as well as any backlash effects that could be introduced by the use of a belt. At the moment this design is only usable on Prusa style printers, but I believe it could be adapted to other types.

Over the coming months I will be designing and putting this together to test it – so stay tuned for updates! If you have any knowledge about how the firmware could be modified to produce the required output for the extruder motor, please get in touch.

9 thoughts on “A new extrusion system

  1. Why not use a square rod parallel with your x carriage rods as a drive shaft? The extruder could have a nylon geared bushing that could slide back and forth on the square rod, eliminating the need to coordinate the extruder and the x-axis steppers.


  2. You do not want to have your extruder motor and x-axis motors trying to coordinate with each other. Your belt setup requires the extruder to drive its belt opposite the x-axis belt to avoid extruding while moving. And when extruding the controller has to coordinate the speeds of each motor relative to each other, and the extrusion drive adds resistance to the x-axis drive. This is entirely nonsensical. If you want to drive the extruder from a motor not on the print head you can replace one of the linear guides with a keyed shaft. That will allow it to still act as a guider for the extruder, but could be motor-driven to drive the extruder. The downside of such a setup is that the transmission parts at the extruder add weight, and have to not have too much backlash in their fit. The other solutions presented make was more sense as all they have to do is isolate and suspend the weight of the direct-drive extruder motor.


  3. You could use a closed loop belt and skip the idler if and have the idler on one end and straight to the stepper motor on the other and then have the cable run under as complete and on top it would go throw just like your drawing. The biggest problem would have to be the firm ware. You would have to do math so when your x moves so dose your extruder motor and if u were moving and printing the extruder would go faster or slower depending if your extruding or retracting. Just have to make sure you have a bigger pull on the extruder so it can move faster then x axis. Also it would actually help the axis move along as well. But there could be draw backs if you jam the head. But it’s only an idea.


  4. I love the basic idea but I see that some improvements are needed to make it work. Reduction of moving mass must be an improvement


  5. Hi, very nice idea. But there will be a problem with it. There will be an aditional force along the x -axis pulling on the extruder cariage. This force, which is not small, will move the carriage slightly, cause the x-movement Belt will stretch. This will reducs the print quality drastically., the layers will not be exactly on top of each others. A solution would be: x-movement by ball screw, and the extruder as you planned.


  6. How about a shaft-driven system with a square shaft and an extruder gear with a square bushing and a regular profile? That way the extruder gear would be able to slide freely along the X axis and rotate in order to push the filament


    1. Really late, but:
      Already exists, its called a zero gravity extruder or something. The main upside to this is it’s a lot less complex, will last longer, and you don’t have to worry about said rod twisting, which could impede extrusion performance. That being said, this setup doesn’t seem to exist just yet.


  7. Seems like if you’re going to add another motor to the X-carriage, I’d rather see a second extruder personally. The direct drive with linear advance performs fine for me, but having soluble supports that in my case prints at too wide a temperature swing for MMU would make a great use case for a 2nd independent extruder.


  8. The idea of a core-xy style setup to enable off carriage extrusion is a great idea.
    Though it would seriously limit the amount of materials/colours.
    Though someone smarter than me could solve that issue.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s