This is how I imagine a multi material feeder / extruder should be. Smart, versatile, reliable and being capable of handling different sorts of materials.
In contrast to other solutions, the SMuFF it's highly scale able. One can use the same base for a 3, 5 or even 9 material machine because of its modularity.
It's also able to replace your standard drive gear and make it a "Bondtech style" extruder, with all the benefits the advanced Bondtech gears will give you.
The SMuFF operates on it's own controller and has a lightweight GCode interpreter built in, which makes interfacing a breeze.
Before you start...
Have a look at the BOM to see which parts are needed. Needless to say that such a device, utilizing Bondtech gears, does not come cheap. A 5 material version will set you back 300-400 money units.
Also, I highly recommend it to experienced makers only. This device is a bit complex. Building and setting it up requires a lot of knowledge and quite some skills.
Please take the time and read all the Update sections below, since it describes mods and options you need to know before you start.
What it's not...
This is not a "out-of-the-box" solution. If you're looking for something that's ready to use, have a look at the Prusa MMU2.
Though you can configure it likewise, I wouldn't recommend using it with direct drive extruders. It works best with bowden hotends.
As of now, it will operate best on Duet3D boards, using a couple of tweaks and workarounds (SMuFF-Ifc) which don't require any firmware modifications.
On Marlin firmware driven 3D printers you have to have Marlin 2.0 set up and running, which enables you to run the SMuFF in Prusa MMU2 emulation mode.
Please have a look at Update 10 and also the wiki page for Marlin Printers.
If you're still interested in building one, please bare with me. I will upload all the files, firmware and instructions needed for this project soon.
Meanwhile, leave a comment and tell me what you think.
Had to rework F03 and F04 because one of the hinges broke. Made them thicker and also got rid of the spring leveling thingy. It's not really needed if you make sure your springs are 15mm long and 6 mm in diameter.
Just uploaded the firmware for the i3 mini board. You'll find it on Github.
Added a couple of wiki pages to Github.
I've added a couple of alternative parts:
- F03a - same as F03 but wastes less filament (print sideways)
- R03a - same as R03 but doesn't need additional bearing and pin
- S05a, S06a, S07 - in case you prefer optical endstops over mechanical ones
Restructured videos to include them in the preview..
Please also have a look at the assembly videos below.
Added part S01a, an alternative stepper motor mount for the Selector, which is 13mm longer and has a bore for a coupler, in case you don't have an stepper with integrated leadscrew and want to use a standard stepper-coupler-leadscrew combination instead.
Added an interface controller, based on the ESP32 on Thingiverse / Github.
Head over to SMuFF-Ifc for further details.
Added a new Selector, which seems more reliable.
Parts S07a and S07b serve the same purpose, whereas S07a needs an additional bearing 5 x 8 x 2.5 mm. The lid of the new Selector also integrates the endstop flag of the Selector and a printed spring on top, which pushes the Feeder endstop flag back, as soon as filament gets pulled out/retracted. So, this part is not optional.
One more important thing:
To get rid of constant filament jamming, you have to replace your heat break.
Since no matter how slow or fast you unload the filament, it always will get a bulge at the lower end and make the filament significantly thicker. This might be not a problem for the PTFE tube, but it is for the heat break.
Thanks to the findings of Prusa Research, there is a of-the-shelf solution though:
Go to the E3D Online shop and get the "Prusa specific heat break (MK2, MK3)". This one has a slightly larger bore (2.2 mm) than the standard ones, which makes it much easier for the bulged filament to get through.
If you don't use some kind of hardened steel heat break, you can try to drill it yourself but be aware that you have to be very precise.
I've tried a couple of things myself to overcome this issue (cutting, heating, re-shaping), but so far I think, swapping the heat break is the most elegant solution.
If you're still getting jams, try raising the nozzle temperature a few degrees up (5-10).
And once again:
50 mm/s printing speed, Z-Hop and Ooze-shield...
At 3:50 you can clearly see the ... fila-mess... ;o)
Have tested the feeder to its limits, just to make sure it doesn't run into under extrusion at some point.
So I printed a 3D Benchy at 180 mm/s, as you can see in the video below.
Result is down below in the Makes (Testing) section.
Conclusion: Bondtech rocks! ;o)
I've added a Prusa MMU2 emulation mode to the firmware. By switching this feature on in the configuration file, you enable the SMuFF to understand the GCodes usually sent to a Prusa MMU2.
Marlin 2.0 firmware already supports this feature and it's already implemented in the SKR 1.3 controller board.
Though, not sure if this works, since I've found quite some differences between the SKR firmware and the latest MMU2 firmware. The SKR Marlin 2.0 firmware branch seems a bit outdated (at least the attached serial-protocol.md says so).
So ... if you'd like to give it a try, let me know.
I've updated the Wiki and added the final scripts for the Duet3D on Github.
Published a Smart Filament Buffer as a complement to this project.
Changed the BOM to calculate length / parts depending on the count of materials (see top-right corner of the sheet).
Working on a different selector drive, which is easier to build, faster and also easier to scale. Have a look at the teaser:
You need the new parts S01c.stl, S02c.stl, S03c.stl and S08c.stl. Furthermore you'll need a timing pulley GT2 20 teeth, an idler pulley with 20 teeth, a GT2 Belt 6mm / 380 mm in length, an M5 x 10 mm brass insert and a M5 x 30 mm screw.
Did some minor design changes on the parts S01c/S02c. So you may re-download them, as soon as Thingiverse lets me upload.
Also, It's now proven that you can use a pancake stepper motor, just in case your standard stepper looks a bit bulky on this new assignment.
If you're going to use this drive system, please don't forget to change the StepsPerMillimeter setting in the SMUFF.CFG to 80 if you're using a standard 1.8° stepper or to 160 if your stepper features a 0.8° resolution.
You also might have to tweak the MaxSpeed parameter a bit in the "Selector" section.
Whatever you fancy
Assembling the counter part.
Assembling the Filament guide...
Putting em all together...
This is just a detailed view on how to assemble the Filament guide block with the lower Bondtech gear in the final assembly step.