SMuFF - Smart Multi Filament Feeder with #Bondtech gears

by technik_gegg Feb 16, 2019
Download All Files

Thing Apps Enabled

Please Login to Comment

Is there an aliexpress BOM?

I've got one I can send you

  • Posted with 3D Geeks Thingiverse Browser App

Yes, please!

This is what I've got at the moment. This covers the majority of parts.
I've not sorted out the fasteners or controller board yet.

No, just an ordinary BOM which contains some links for the precious stuff.

Just looked some of the stuff in the BOM up myself.. Is there a special reason for using the orginal Bondtech Stuff? I mean, the cloned ones from Trianglelabs are actually pretty accurate clones and cheaper.

I`m using the gears from Trianglelabs w/o any issues in my SMuFF and in my Extruders as well

Beside respecting the intellectual property... no special reason.

So... I still don't get it yet.. How to do actually feed the Filament in the Hotend? Is there another Extruder Stepper just for that or what? Because you said that the SMuFF would'nt work with a Direct Drive System and you prefer a Bowden driven one... The Thing is i just can't imagine how you actually feed it.. And there are no Pictures or Videos about that Part (or the working Version on a Printer)

I didn't say it wouldn't work, I said: I don't recommend it.

I guess you mean you can't imagine how it works on a bowden drive system?

Well, in this setup the SMuFF is the extruder/feeder. It just doesn't control the feeder stepper but instead the feeder stepper will be handled through the printers controller board.

The exact configuration is shown here: SMuFF-Ifc
Scroll down to Mode 1: Fully connected and you'll see that the E-Stepper driver is connected directly to the feeder stepper motor of the SMuFF.

The printer controller itself doesn't care much about whether it's a "normal" extruder or something else. It just spins the motor as directed by the GCode. With no tool change commands within the GCode, the SMuFF behaves just like any standard Bondtech extruder.

And that's exactly the configuration you see in all my videos.

So.. If i got it right now.. The SMuFF feeds it with a PTFE Tube directly into the Hotend like a normal Bowden Style printer? Sounds logical.. It's just that the prusa mmu irritates me a bit, because it's still using a extuder on the hotend itself.

Yes, now you've got it.

Well, maybe this makes sense to you:

Prusa MMU2 gears: normal MK7 (AFAIK)
Prusa i3 extruder gears: Bondtech -> going from weak gears (MKx) to strong gears (Bondtech) makes sense, as those (extruder gears) are the ones who're responsible for the print quality.

SMuFF gears: Bondtech
Printer extruder gears: MKx -> possible but a waste of money if you're using the Bondtech gears on the SMuFF only for the initial feed
Printer extruder gears: Bondtech -> possible but unnecessary, except you insist on having a direct drive system
Printer without direct extruder: Best choice ever ;o)

Doing the feed twice (SMuFF to extruder, extruder to nozzle) makes the whole process more complicated and prone to failures. That's why I don't recommend it, but it's all up to you. With the SMuFF you can do either the one or the other.

But how would you drive a direct drive system without an Extruder on the Hotend? The only way i can think off is with the Zetsy numble System, but that also needs an Extruder again...

Anyway.. On to a slightly different matter.. I still have an Chimera+ lying around which i wanted to use on the Printer as soon as my skr 1.3 finally arrives.. The thing is does it still make sense with smuff? I think the only benefit now, would be to run one of the nozzles with direct drive for TPU and Filament that needs an direct drive, and let the other one like it is for the smuff or only use the second nozzle like i orginally intended for PVA... But i think i would also be really cool if the smuff could use booth ones and use different nozzle sizes on each one.. Like a 0.4 nozzle for the normal stuff and 0.2 for like fonts and small details on prints.

No, I don't think it makes much sense using the SMuFF on a Chimera.

Good.. I will use the Chimera on my second Printer than

could I use this with a prusa mmu2s cloned motherboard, and then emulate a prusa i3 using marlin 2?

Cloning a clone, huh? Don't mess with nature! ;o)

Yes, I think that's possible but not without reprogramming the MMU-Control firmware to match the movement steps and such.

the reason for this is to increase simplicity, anyways, I found out that they sell original boards for 35$: https://www.ebay.com/itm/223647949452

I found this forum post, and am wondering if I could take advantage of this functionality to reflash the FW... I know no code so you may be able to find something out.

there seems to be a possible flashing port on the board itself also, 6 pin unshielded, wonder if I could connect my USBASP to that

There's no simplicity in that.

The board can be flashed via USB since it has a boot loader on board (AFAIK). You can do it from your PC but you have to have the right firmware.

The MMU2 controller is just another 3D printer controller. Eventually it controls mainly the 3 axes and does some actions as it receives data from the serial port or the buttons.
From that, you can control the SMuFF hardware easily, since there's nothing strange here. Just 3 motors and some end stops.
All you have to do is to setup the right parameters in the firmware, wich may need some fiddling.

I‘d like to try to connect the SMuFF with my Prusa MK3s. How can I Connect the interface?
I know I have to set the Prusa Emu in the config file, but I‘m not sure about the wireing

Have a look at this video from Chris.
He explains where the MMU2 gets connected normally on the EINSY board.
Those are the pins that needs to get wired to the SMuFF controller using the Serial 2 interface. You only need 3 wires: TX, RX and GND.
According to this image, you need pins 3,5, and, 7.

Also, make sure you connect TX to RX and vice versa.

And don't forget to configure the baudrate for this connection in the config file. Not sure which baudrate the MMU2 uses (wild guess: 9600).

This might help as well.

Sounds good. I´d like to test it out this weekend with the original Prusa FW
Do you send the MMU FW Version back to the Printer. In Prusa FW called it MMU_REQUIRED_FW_BUILDNR

Yes, I do according to the MMU2 source code and the findings in the readme of the SKR Marlin 2.0 branch.
Though, I'm not quite sure if all is correct since I didn't test it yet on a Marlin 2.0 / Prusa.

Hi it's me again, just wondering how you fitted the pneumatic couplers? did you heat them up? any tips/tricks? thanks!

No, I just screwed them in carefully and with a bit of force with a hex nut driver.

Amazing design. Like to try it.

I however have a direct drive prusa Style Creality ender 3. I was wondering why this is not recommended in your thing details? Thanks!

“Though you can configure it likewise, I wouldn't recommend using it with direct drive extruders. It works best with bowden hotends.”

Simple answer to this: I've tried it ;o)

The problem is, that the bulged tip of the filament (which you'll always get) may cause issues as you try to feed it into a second extruder gear.
It all depends on the gears you use, how the tolerances of the gears are and how bulged the filament is.

I've tried it with a Bondtech direct drive extruder and had not much fun, since the gears are so tight (which is a good thing and the reason why I've used them for the SMuFF) that the filament would not get in/through.

Sure, with some fiddling and some magic "filament shaping" (which I've tried as well) you may achieve a 95% solution but then still 5% may fail and stop your print.
In a bowden system this problem won't occur. The only culprit here is the heat break, as I've stated in Update 8 (again: bulged filament, tight tolerances).

Sorry if I missed but, but hot end? I wonder if this is the reason for the prusa specific heat break and changing to one would resolve the issue?

Edit: E3d v6 hotend

Well, for me it did, that's why I've mentioned it in Update 8.

However, it all depends on the material you're using. I figured, that with some (cheap) filaments the bulge gets occasionally even thicker than that and sometimes it even gets stuck in the PTFE tube.

On my setup, I'm using an E3D plated copper heat block with a MicroSwiss nozzle and a MicroSwiss heat break (before I swapped it with the Prusa special heat break).

The worst thing you can do, is using an V6 lite (or similar) system, where the PTFE tube goes way down into the nozzle. From what I've experienced, that's the worst setup ever and prone to nozzle clogging, even if you don't use an MMU.

I must have missed reading that update. Thingiverse needs a better mobile layout. I have and ender 3 and I am torn between a mosaic pallete, an mmu2s with Marlin or this. I might just have to keep waiting a bit.

Great work by the way. Very tempted to give a go regardless.

Thank you for the compliment.

Well, let's break it down:

  • If 4 materials are enough for you, the Palette is the way to go. Simply because it's the most hassle free solution on the Ender 3.
  • If you need more materials, then it's either the Prusa MMU2 or the SMuFF. Whereas the SMuFF is yet the only one that supports up to 9 materials.
  • For either the SMuFF or the MMU2, you'll need to upgrade your Ender 3 to Marlin 2.0, which means, you'll need to replace the controller. As for now, the SKR 1.3 is the only one I know that has tool changing integrated.
  • If you don't mind switching from Marlin to something else, I'd recommend the Duet3D controller. It's by far the most advanced controller and proven to work with the SMuFF but also a bit more expensive.Though, it does not work with the MMU2 yet.

Hope that helps.

Every bit helps. That being said, I should have mentioned, I have already converted to Marlin running on an SKR 1.3. Before I came across this, I ordered an SkR 1.1 pro. No specific reason for the pro.

More is colors is always better right? :)

I'll look into the duet3d control as I continue my research.

Thanks for the replies!

You're welcome.

The more, the better - but also messier.
Just place 9 spools of filament in a row and you know what I mean ... ;o)

Hi, what a great work!
I try to build smuff by using arduino mega, ramps 1.4, and reprap discount full graphics smart controller. However, after booting the screen get stuck while reading the configuration file on sd. Do you have any idea why this happen?

Thank you

Hard to say at this stage.
Do the following:

  • remove all comment marks in front of the __debug() statements at least from config.cpp
  • connect the SMuFF via USB to your computer
  • upload the newly compiled firmware
  • open a terminal session from your PlatformIO environment
  • tell me the result of the __debug() printouts.

I'd suspect that something in the SMuFF.cfg is not correct.

Thank you for your reply.

I uncomment _debug() and now when I start, the screen shows that config file is possibly corrupt.

result of _debug() :
Trying to open config file 'SMUFF.CFG'
File size: 1183
deserializeJson() failed with code IncompleteInput

I also attach CFG file.

Again, thank you.

The config file itself seems to be ok, as I've checked it here: https://arduinojson.org/v6/assistant/
The file size is pretty close to the limit though. Try removing the all material names from the config i.e. "Tool0":"",... and try it again.

hi there,

love this but cant find the file for the rear mounting piece for the controller box have i missed it somewhere?


It's i3mini_case_bottom.stl...

thanks for getting back, i mean the black bit in the centre of this render, i believe its a seperate part to the back, but couldnt find it?

Oh, that little sucker...
Actually, that's not part of the print but a molded adapter plate for the gooseneck mount I'm using. Those are usually made for mounting smartphones or GPS devices in your car. For example:
Adapter plate
Gooseneck mount

ahaaaaaa great thanks v much!

What infill is recommended for this? Will 25% with something like Gyroid or Tri-Hexagon work?

Yes, it will. Infill is not that critical (except for the F04, as stated in the Tips & Hints section).
Use at least 3 shells/perimeters where the parts will keep / hold bearings.

is there any chance to use "Arduino Due 32bit + Ramps" kit as board for this fantastic tool?
i run all my printers on this kit, and use Marlin 2.0 on it.

You mean as the main controller for the SMuFF or instead of the Duet3D on your printers?

I would be interested as the former solution. Would it be possible according to you ?

Yes, sure. You'd have to change the pins in the config.h of the SMuFF controller firmware according to the DUE / RAMPS hardware.

Not sure about the display and encoder though. You might end up wiring a separate I2C display and rotary encoder to it to make it work.

What slicer do you use? Great Work.

I'm using Simplify3d but one can use any slicer that is capable handling multiple tools (which, as far as I know, are all of them).

Usually, the slicer sends a Tx command whereas x stands for the tool number. The rest is up to the controllers firmware.

I also use Simplify3d for all my 3d printers. At the moment I have already experimented with a Y-splitter but I realized that sometimes the slicer changes start extruder. This ensures that the path is still blocked for the starting extruder at the start. Are you willing to share your script in simplify3d?

I'm sorry, I don't have any code in the slicers tool change events. This is because I only have Duet3D controllers, which utilize powerful scripting facilities for anything, among them the tool changes.
If you look here, you'll find a description at the end of the page.
The scripts I'm using are contained in this Github repository as well, but they're pretty useless unless you get a Duet3D board.

Have you checked this: https://www.thingiverse.com/thing:1926351 ?
Might give you an idea what's wrong.

Just to prove it... see attached pics.

Dual Extrusion Y Splitter

Thanks for your intell. I'm building the V-king corexy , printer with duet wifi controller and i'm gonna make the smuff module for my multi color prints, but i'm gone expand is to the 9 colors. Part R03.stl is there any chances to make for the 9 colors? Sorry, for all my questions!!!

R03 is always the same part, regardless how many filaments you use. You just print as many as you need. The trick is: the pins on the left side are shifted by 36° compared to the right side. Hence: 360° / 36° = 10 = 9 filaments and one empty slot.

I'd recommend you to have a look at all the assembly videos in the description, it may clear things up.

Hello Christian,

I like your project a lot and I started to check the BOM and see what components I need to start.

Unfortunately, Duet3D boards are inaccessible to me, so I have started researching SKR 1.3 boards.
The one interesting thing I have found is this:

It has E0, E1 and E2 intergarated in one board.
Also it appears that it has 2 display outputs (maybe different things could be displayed).

Would it be possible to run SMuFF with only one board?

Sure, you could theoretically run the whole tool changing stuff on the SKR itself (which is why you mentioned the additional extruder ports, I guess) but that would require implementing the code for tool changes directly into Marlin 2.0 (i.e. your own branch). You'd use E1 for lets say the Revolver and E2 for the Selector for example.
So, you'd utilize only the hardware of the SMuFF but not the software.

Totally doable but not very practical I'd say, since you'd brake the Marlin 2.0 compatibility and you'll have to take care of future Marlin 2.0 development yourself (unless you convince the Marlin developers to port your changes over to the master branch).

I've mentioned this board, because in the Marlin 2.0 source code (Bigtreetech branch) it already supports the Prusa MMU2 tool changing commands, which, if implemented correctly, should be good for the Prusa MMU2 emulation mode of the SMuFF.
Unfortunately this feature hasn't been tested yet on the SKR 1.3 (at least, no one told me so).

Here's a little video of the SKR 1.3 Marlin 2.0 installation /configuration from ScaldaYT. It might be useful for you.

any updates of the belted driver selector?

Yep... running just as expected.

Have been doing a continuous dry run for 2 days now without any issues. I've even tried a pancake stepper motor, which is absolutely sufficient for this task and won't add as much mass as a standard stepper.

I had to do some minor design changes on the S01c/S02c to give it more stability (just in case). Will upload as soon as Thingiverse lets me.

I think, I will focus on this type of selector for future development but as I said already, those components are easily interchangeable. So it's up to you to pick the drive system you fancy.

Is there an updated BOM available?

Uh... not yet, but have a look at Update 14... there you'll find what you need ;o)

No problem. Just wanted to make sure I knew what not to order. I saw the parts required in update 14. Maybe you could let me know what line numbers wouldn't be required?

3, 4, 6 and 11, 12

Updated BOM... see end of list

Great thanks. I shall start ordering parts

just to let you know, I've ordered all the main parts and will begin printing shortly

  • Posted with 3D Geeks Thingiverse Browser App

Glad to hear.

BTW: As you're up to print the filament guide lids, make them no infill, all perimeters (I've used 8) so those parts will become solid. It's necessary since they use to wear off very quick..

Hallo Christian,

echt tolle Arbeit!

Eine Stepdatei mit dem kompletten Zusammenbau würde es Einfacher machen wenn man kleine anpassungen vornehmen muss.

Danke Gruß Timo

Danke für das Kompliment.

Was z.B. würdest du denn anpassen wollen?

Es geht mir eigentlich darum, wenn man z.B. halter Bohrungen um den SMuFF irgendwo zu befestigen anbringen möchte oder wenn man statt der verwendeten Bauteile vielleicht "schon vorhandene" Bauteile verwenden möchte die z.B. andere abmaße haben. Eventuell andere Stepper Motoren, statt Nema 17 einen Nema 14 für den Selector. Ohne STP geht das auch ist aber sehr umständlich.
Falls du das nicht möchtest ist das kein Problem, war nur eine Frage.
Grüße Timo

Christian, can you provide the fusion 360 or a STEP File of SMUFF?
I´d like look more into the design and maybe change something to use my material I already have at home.

This is amazing, im sure Joseph Prusa is pissed XD.

Thanks for the compliment.

I don't think he's pissed. I don't know Josef Prusa in person, but judging from what he has done for the maker community, I think this project is in his spirit. As in "learn, make, share".

That being said... loooooooool

Have you got a list of lengths for the 9 material version?

Sorry, no I haven't.
Simply add 4 times 21 mm to the length of the rods for the 5 material version - which is the size of one filament guide block and increase the number of bearings, fittings and stuff for each additional filament guide block.
This might help: https://youtu.be/z5ulHYynAa0 (leave out the brass insert and screw at the bottom since they're not needed anymore).

That is brilliant thank you,

Also the mainboard does these only work with the duet board? or can i use an skr 1.3 (marlin 2.0) as the main board?

I'll try to rework the BOM and create a dynamic version.

As of now, only Duet3D has been fully tested (which is what I have). As I've mentioned in one of the updates, I've implemented the Prusa MMU2 protocol, which is supported by the SKR 1.3 running on Marlin 2.0 (as far as I can tell from reading the source code) but this has not been tested yet (afaik).
If you wanna give it a try, I will assist you as good as I can.

Ok thank you for the reply,

i Am planning in converting my any cubic predator and use this on it since it has the largest build volume i have at the moment.

Also, thank you for the updated BOM with the auto adjustments for the number of feeders

You're welcome.
Please let me know if I missed something in the BOM.

Talking about the conversion: I know I sound biased (mostly because I am ;o) but I'd recommend the Duet3D if you haven't made a decision yet.

I am slowly working my way through the BOM and sourcing parts. The integrated leadscrew proves problematic.

As for the duet, I would love to upgrade to one of them but the price really puts me off considering I live in the UK its way more expensive then else where

  • Posted with 3D Geeks Thingiverse Browser App

Have a look at "Update 6" of the description. Solves that "integrated leadscrew" problem.

I've been thinking about an SKR 1.3 recently to upgrade the old Flashforge Dreamer to something really useful. I compared it to the Duet Maestro, which is more than sufficient for this project and figured that the Maestro comes cheaper since it has the drivers already on board.
Using the Maestro, you also may recycle the old display - so no money to spend on this.

Overall, I just love the way the Duets handle the configuration. Fiddling around in the config.g is - in my opinion - much less time consuming and much more efficient than compiling and uploading. You simply can try different parameters just to see how they perform even while the printer is printing.
This way I've optimized my printers, so that my default printing speed setting in the slicer is set to 100 mm/s and I rarely go below, except I have some really small parts to print (yeah - sometimes I even print Benchies with a 180 mm/s ;o).

That's great thank you, I must of skimmed right over that update.

And yes I think I will go with the duet for my predator since someone has done a full conversion with mag all arms and such

  • Posted with 3D Geeks Thingiverse Browser App

I'm pretty sure you won't regret.

I went in trouble as I tried to use the SMuFF.cfg
Message: CONFIG FAILURE Your config file is too big, please reduce content

SDCard is 4GB big with FAT16 (also tried FAT32)

How can I fix it? File looks quite fine
Using Macbook

Yeah, I've got the same message quite some times and it almost drove me nuts.

First of all, make sure you don't have an old config where the "I2CAddress" setting is set to 0x88. The "0x" is not being recognized by the parser. The newer configs have that setting written in decimal notation.

Also, make sure that the file size doesn't exceed 1200 bytes (remove the materials if this is the case).
A good way to test it is to copy and paste the config file in here: https://arduinojson.org/v6/assistant/
That's a tool from the maker of ArduinoJson, which parses the JSON string and check its size and syntax.

If that doesn't solve it, try using a different SD-Card, which is what I had to do once in another project using the i3 mini controller.

Another thing I've discovered once is that the free memory dropped to about 200 bytes (which usually is supposed to be about 2000 bytes). This happens if the RX line of the 2nd serial port is open or disconnected (the one that goes to the SMuFF-Ifc). Either connect it or use a pull-up resistor on that input pin.

Thanks Christian,

The file size was the issue.
I downloaded the file from your github before. I did some changes and I could downsize from over 1250 bytes to 1183 bytes

With the file below it works :)

Glad you got it working!
The problem is that the file size can't be extended anymore since the memory on the device is very limited and the JSON gets expanded into the main memory while parsing. So reducing is the only way to go.

Not sure about this - just a wild guess: Maybe the indentation tabs (\t) get expanded to spaces at some point, which can cause the file to exceed the set limit. I'm sure I replaced all spaces with tabs.

It's a brilliant design, about the controller, does it have to be the duplicator i3 mini? or any 3d printer controller board will do? Thanks.
At this point, I guess the only thing stops people from making it is probably the price, even if all parts are sourced from aliexpress, it still adds up to 200+

Thank you, glad you like it.
No, it doesn't have to be the i3 mini controller. I've picked this one because of its small form factor and because it has all components needed on one PCB.
You can use any other controller board based on the ATmega2560 chip but you'd have to adopt the pin configuration and the housing yourself.

Yes, it's pricey - no doubt - but I guess that is to be expected when geeky freaks build something for their own day to day use and simply expect them to function in every single print ;o)
That's also the main reason why my printers are all equipped with (genuine) Duet3D boards.

Don't forget, that if you build such a machine, you'll get a five fold Bondtech extruder equivalent, which doesn't come cheap even if you get them from aliexpress (which I'd not recommend - intellectual property - yadda yadda).

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