MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


SMuFF - Smart Multi Filament Feeder with #Bondtech gears

by christian-gegg Feb 16, 2019
Download All Files

Thing Apps Enabled

Please Login to Comment

ok done a complete and even reverse turn

on the other hand, depending on the state of the butee on the presence of the filament
open or closed it turns or not


That's true. If the feeder endstop signals "loaded", the SMuFF will ask you to unload before homing. Also, if the line Feed on the main screen shows a checkmark, the feeder endstop has triggered.

what you quote as solutions I already tested
I think the concern comes from the endstop
they cut not frankly except that of the selector

If you disconnect the endstop, the Revolver is supposed to make a full turn. If that's not the case, theres something wrong with the stepper wiring. Have you tried this?

put video online


many times home


Ok, looks like the stepper is going the wrong direction.
Let's assume, the stepper is wired correctly, do the following:

  • set the InvertDir option in the Revolver-section of the config file to false if it's currently set to true or vice versa
  • select "Motors off" in the Main menu and rotate the Revolver manually until the endstop flag hits the endstop (LED on the endstop is supposed to go off - same as on Selector).

If those changes do not help, check the wiring of the stepper and also the reference voltage (Vref) on the Revolver stepper driver (as mentioned here https://github.com/technik-gegg/SMuFF-1.1/wiki/Wiring-the-i3-mini-board).

The Revolver is supposed to turn in the opposite direction (as it's doing in your video) to reach home position. If this is the case and it still doesn't move to home position, try changing the EndstopTrigger value (0/1) of the Revolver-section.

Comments deleted.

I'm having a problem with "Revolver"
when I do "home" "selector" stop on the endstop ok.
"revolver" hardly moves and stops anywhere.
endstop "feeder" closes ,no thread for testing
  thank you

Can you make a short video and put it online?

start bdes test

thank you!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

That looks beautiful! Great job!

Let me know how it works for you. I hope, you'll publish some printed models soon.

the compilation with platformIo of the SMuFF1.1 program
gives an error. made with two different pc's.

initial version with arduino ide without problem

thank you for the job

Yep. You somehow duplicated SMuFF.cpp into main.cpp... which is the source of the error.
Simply delete main.cpp from the source folder.


super !!!!!!!!!!!!!!!!!!!merci

pieces commandees

pour mettre sur corexy voron et duet wifi

Il n'y a pas de quoi.
Prévenez-moi quand vous aurez fini les parties et je mettrai à jour les scripts Duet3d car je suis en train de les peaufiner.
Si ce n'est pas trop compliqué pour vous, écrivez en anglais pour que les autres en profitent aussi.

I know its a newbie question, but can this thing do what mmu2 does, because i only look the video... and in the video just show color changing on z axis

The colors are applied through your model not the device itself.
So the answer would be: Yes, it does more or less exactly the same as the MMU2 or any other filament changing tool does.

okay, soo thats cool, maybe try to print something pretty hard like multicolor gekko or josef prusa's model..... maybe that will cool, but if you have enough filament though

I know its a newbie question, but can this thing do what mmu2 does, because i only look the video... and in the video just show color changing on z axis

I know its a newbie question, but can this thing do what mmu2 does, because i only look the video... and in the video just show color changing on z axis

No makes on this yet???

Very Very Very nice design mabie i'll implement on my corexy

Thank you! Glad you like it.
I'd say, if your CoreXY is driven by a Duet3D, go for it!

Got an SKR 1.1 Marlin 2.0 and i think marlin 2.0 already supports tool changing but will dig more in to it

I've added a Prusa MMU2 emulation mode to the latest version of the firmware (1.2).
Hence, you should be able to drive the SMuFF without modifying the marlin firmware by just pretending it's a Prusa MMU2.
Not sure if this works, since I don't have an SKR controller to test.
Let me know if you still plan to build one.

I guess you're right.
I browsed the Marlin 2.0 code just minutes ago and I'd say, it looks very promising. It's pretty modular and at first glance I think it doesn't need many changes.

I looked at the 'feature' folder and especially the Prusa_MMU2 feature (https://github.com/bigtreetech/BIGTREETECH-SKR-V1.1/blob/master/firmware/Marlin-bugfix-2.0.x-SKR%20V1.1/Marlin/src/feature/prusa_MMU2/mmu2.cpp).

The cleanest approach would be to create a new feature, let's say '/feature/SMUFF/' and add files SMUFF.cpp / SMUFF.h to it, whereas SMUFF.cpp needs to implement the public function SMUFF::toolChange(uint8_t index) (at least, don't know what else Marlin 2.0 needs for interfacing).
Then, the module toolChange.cpp (https://github.com/bigtreetech/BIGTREETECH-SKR-V1.1/blob/master/firmware/Marlin-bugfix-2.0.x-SKR%20V1.1/Marlin/src/module/tool_change.cpp) needs to be extended like this:

  #include "../feature/SMUFF/SMUFF.h"

and somewhere in the toolChange function itself:

    UNUSED(fr_mm_s); UNUSED(no_move);


And of course, somewhere in the code the 'smuff' instance has to be created and the serial interface has to be defined as well.

The not so clean approach would be to adopt the SMUFF GCode parser to interpret the commands sent by the Prusa MMU2 and act accordingly.

Either way... code must be changed / extended but at least it's doable and - as it seems to me - with less effort then in the Marlin 1.x.
One major culprit of Marlin 1.x is the non existing second serial port for communication, which has been added in 2.0 apparently.

but first i need to order some parts ^_^, i din't understand one part your smuff needs to accopolate to the extruder or is direct bowden ?

You can do either the one or the other (it's configurable through the SMUFF.cfg file on the SD-Card, as stated here https://github.com/technik-gegg/SMuFF/wiki/Configuration-file-(SMuFF.cfg)).

Since it's utilizing Bondtech gears, I recommend direct bowden. In this case, the SMUFF doesn't control the feeder, only the revolver and the selector. The feeder is supposed to be controlled through the E1/2 stepper of your mainboard.
Some sample configurations can be found here: https://github.com/technik-gegg/SMuFF-Ifc