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.
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.
“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:
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:
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:
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:
- It takes the weight of the extruder motor away from the moving mass
- It allows the drive gear to be directly above the hot end.
- 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.