GithubHelp home page GithubHelp logo

prusa-mmu-12x's Introduction

Prusa MMU2S Modification for 12 Filaments

Overview

This is the result of several months of designing and testing new ideas for increasing the filament count of the Prusa MMU2S. I tried several variations, but ended up coming back to something that is largely based on the original Prusa model. Some of the major adjustments include:

  • increased filament count from 5 to 12
  • reversed position of pulley and idler motors, to maximize the use of the 110mm pulley shaft
  • moved FINDA to the rear of the selector, in an attempt to minimize issues where the filament clears the ball but then still fails to fully retract
  • added quick-release for FINDA sensor, for ability to clean or check ball chamber without re-calibration of FINDA height
  • selector has integrated threads for PTFE quick-connect
  • moved control board beneath the body (inspiration thanks to univeraljoint)
  • additional bracket mounting options
  • optional integrated OLED display for more detailed state information and enhanced error recovery
  • selector does not include the cutter

The Disclaimer

These items and related code are provided as-is, with no warranty -- express or implied -- and I cannot personally guarantee that it will function and/or not break your printer. Nothing here, of course, is officially endorsed or supported by Prusa.

That being said, I have had a great deal of luck using this model, or I wouldn't be sharing it.

Software & Firmware

In order to use this model of the MMU, you will need to use the following modified firmware for the MMU board. This has been branched from version 1.0.6, but has numerous significant changes, so whether or not I will keep this up-to-date with future version is questionable.

https://github.com/cjbaar/MM-control-01

In addition, you will need to change the firmware on the printer itself, because the existing code will ignore any tool changes above T4. This is now based on branch 3.11.0. There is a compiled version for the MK3S in the firmware folder of this repo.

https://github.com/cjbaar/Prusa-Firmware/tree/MK3_3.11.0

Finally, in order to create the gcode files, you will need to create a new printer model in a MMU-aware slicer that is setup for 12 filaments. I had no issues doing this in PrusaSlicer version 2.1.0+.

Hardware

Printed Parts

Print one of each included STL file, with the following exceptions:

  • choose either m6 or m10 thread for selector base
    • or original m5 heat-set remix, thanks to obe
  • choose bracket type (traditional frame mount or table-top)
  • print four copies of idler-rings.stl
  • screen is optional, if using OLED display
  • wrench is optional, but assists with assembling the inlet manifold

I printed all parts with relatively slow speed and 0.2mm layers. I also printed most everything with PLA -- in particular, the selector and idler rings -- because I get better consistency and tolerances for bearings and general fit. In my experience, printing the same model in PETG may make some pieces harder to fit together.

For the "lower" model, there is a related mod file, which I recommended printing with 100% infill. The selector cap might also need to be 100% infill.

Additional Parts

The following pieces are required for assembly. Items in italics may not be included in the original Prusa MMU2, but should be easily found on Amazon (or your world domination retailer of choice).

Lower

  • (1x) Prusa MMU "Extruder" motor (std d-shaft)
  • (1x) Prusa MMU "Pulley" motor (110mm d-shaft)
  • (1x) Prusa MMU "Selector" motor (120mmx8mm lead screw)
  • (12x) m3x10mm screw
  • (6x) m3 square nut
  • (4x) 625Z bearing
  • (2x) 5mmx120mm steel rod
  • (7x) 12mmx12mmx5mm drive gear (40T)

Upper

  • (4x) m3x10mm screw
  • (2x) m3x12mm screw
  • (2x) m5x16mm screw
  • (2x) m3x30mm screw
  • (2x) m5x15mm spring

Idler

  • (6x) m3x20mm screw
  • (2x) m3x25mm screw
  • (10x) m3 hex nut
  • (1x) 608RS bearing
  • (12x) 4x13x4mm u-shaped bearing
  • (1x) 5mmx100mm steel rod
  • (2x) 11mmx11mmx5mm Mk8 brass drive gear (26T)

Microcontoller Unit (MCU)

  • (4x) m3x14mm screw
  • (3X) m3x12mm screw
  • (3x) m3 hex nut

Inlet

  • (6x) m2x16mm screw
  • (6x) m2 hex nut
  • (12x) m10 PTFE quick-fit connector

Selector

  • (2x) m3x8mm screw
  • (2x) m3x16mm screw
  • (2x) m3 square nut
  • (2x) m3 hex nut
  • (1x) T8 plastic lead screw nut
  • (1x) m10 OR m6 PTFE quick-fit connector
  • (2x) 5mm brass sleeve, cut to 20mm length
  • (1x) FINDA sensor

Brackets

  • (2x) m3x8mm screw

Display (optional)

  • (1x) OLED SSD1306 display, I2C, 128x64
  • (4x) m2x8mm screw
  • (1x) m3x8mm screw
  • (1x) m3 square nut
  • (4x) 200mm F/F jumper wires

Images

Testing

Full setup with spool rewinders from VincentGroenhuis

Output

A successful 12-color print

prusa-mmu-12x's People

Contributors

cjbaar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

prusa-mmu-12x's Issues

Custom Firmware for MK2.5s?

Iโ€™m just wondering if anyone has done custom firmware for the MK2.5s? I ordered everything to do this and then realized the firmware was just MK3s.

MMU FW UPDATE NEEDED

I built and flashed both MMU and printer. For printer I used my own compiled software, as I have installed Mosquito Magnum with SliceEngeenering thermistor. Now I'm getting error MMU FW UPDATE NEEDED and in serial I communication I see:

Recv: echo:MMU2:>X0*4c.
Recv: echo:MMU2:>S0*c6.
Recv: T:19.8 /0.0 B:23.0 /0.0 T0:19.8 /0.0 @:0 B@:0 P:24.8 A:28.7
Recv: echo:MMU2:Version mismatch, last bytes: 6b 6f 6b 6f 6b 6f 6b 6f 6b 6f 74 73 00 00 00 00
Recv: echo:MMU2:MMU FW UPDATE NEEDED
Recv: retryAttempts=3
Recv: echo:MMU2:<stokokokokok.

Do you know how I can check what is sent via MMU to my MK3S to debug it? I tried adding some code to debug, but I did not see anything in serial communication:

--- a/Firmware/mmu2_protocol_logic.cpp
+++ b/Firmware/mmu2_protocol_logic.cpp
@@ -213,6 +213,11 @@ StepStatus ProtocolLogic::ProcessVersionResponse(uint8_t stage) {
         SendVersion(stage);
     } else {
         mmuFwVersion[stage] = rsp.paramValue;
+        MMU2_ERROR_MSGRPGM(PSTR("Version test"));
+        SERIAL_ECHOPGM("Stage: ");
+        SERIAL_ECHOLN(stage);
+        SERIAL_ECHOPGM("Number: ");
+        SERIAL_ECHOLN(mmuFwVersion[stage]);

I'll try to find some old thermistor and connect it to test your precompiled firmware to rule out fired chip for communication.

Tip Forming

I have completed the setup and the filaments all seem to be on track and functioning. The problem I am having is the tips don't seem to be forming correctly and are fat causing them to get stuck in the extruder and not retract into the mmu2s unit to allow it to switch to the next color. do we need to adjust any settings on the tip forming or raming? Thanks

Stuck in tool change 1

Installed and updated both firmwares. The print is stuck on tool change 1 and just freezes over the purge block. Running MMU board firmware without screen.

Question About Print Material

Thank you for keeping the project alive. I'm thinking of building this and was wondering if you would still recommend PLA as material of choice, based on your long term experience with your setup?

mmu12x-lower-mod.stl is damaged

Hi @cjbaar,

I finally trying to build one mu 2x based on my exist mmu2s and I found the mmu12x-lower-mod.stl come with only 78.6k size.

Could you help to update it :)

image

mmu12x-inlet is not a manifold

Trying to slice mmu12x-inlet in cura will result in visible holes on top of the geometry.
SuperSlicer with a similar profile is able to repair the mesh before slicing.

Looks like fun project

I have bunch extra MMU2 parts and was looking for something like this to undertake. Just wondering if have more detail build or guide yet?

Print parts

I've started printing the parts in PETG.
Can you tell me for what you need the lower mod?

Updated firmware please!!

Any chance of getting new firmware with the update to fix the max T4? The current firmware keeps crashing on my printer saying that the bed had temp issues even though the temp was just fine!

mmu3

any chance we get a fork of the mmu3 firmware and i think 3.13 for the mk3s+ and mk4 support?

i was hoping to get rid of my mk3s+ and move it over to the mk4 i started looking at the firmware and stuff but im not smart enough for that.

cad file for the 12 filament inlet

I'm about to mount mine in a enclosure, instead of reinventing the wheel can I get the cad file for the 12 filament inlet so I can modify it for the prusa original enclosure?

PrusaSlicer custom G-code?

Thank you for making such device cjbaar!
I have managed to build mmu12x and flash firmware on both MK3s+ and new MMU12x.
But I am having some trouble where I am getting "File Incomplete. Continue anyway ?" error on the printer screen.
When I try with Octoprint, it says there is no tool exist, e.g. T11 for extruder 12.
I have expanded the number of extruders under 'Printer Setting'>'General'.
Also added below G-code under 'Custom G-code'>'Start G-code' for extruders 6-12, as I thought it was necessary.
M403 E5 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[5]=="PVA") ? 2 : 0))}
.
.
.
M403 E11 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[11]=="PVA") ? 2 : 0))}

If I use normal printer & MMU preset for 5 filaments, it works perfectly, but once I expand the number of extruders, I get the above error.
Do I require any other changes? or does the printer profile need to be made ground up?

Any help would be very appreciated.

Powered on.

So I plugged it all in as would MMU2S. I flashed both firmware. I am not seeing it. I see light on MMU2 board but MK3S not seeing MMU2 connnected.

MMU-12x stuck in "Initializing"

I've build the MMU-12x and flashed the firmware with display on it.
Display turned on instantly.
Also flashed the 3.11. FW on the printer, no problem here.
Printer shows under "support" MMU2 N/A, not sure if this is right.

Now if i start up the printer (with the mmu) the LEDs flash from right to left, none stays on.
The display shows Initializing and none of the buttons does anything.
When I unplug the connector from the mmu to the printer nothing turns on, so I'm relatively sure that the wiring is correct.

What am I missing ๐Ÿค”

Hope someone is still active here, thanks in advance !

Compile MMU2S code

I am trying to figure out how to compile the code. I am not sure I understand how to do this.

Arduino: 1.8.5 (Windows 10), Board: "Original Prusa i3 MK3 Multi Material 2.0 upgrade"

Build options changed, rebuilding all
C:\Users\rmily\Desktop\MM-control-01-master\MM-control-01-master\MM-control-01\version.ino:13:10: fatal error: dirty.h: No such file or directory

#include "dirty.h"

      ^~~~~~~~~

compilation terminated.

exit status 1
Error compiling for board Original Prusa i3 MK3 Multi Material 2.0 upgrade.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Firmware compiling

Does anyone have compile the actual firmware for using the Super PINDA?

Compiling issue

Ok I got firmware 3.9.0 to compile and made a .hex file for my MK2.5s

My issue is when I redid everything to try and get 3.10.0 to work I get this .

C:\Users\Tim\AppData\Local\Temp\ccy70zps.ltrans0.ltrans.o: In function `process_commands()':

ccy70zps.ltrans0.o:(.text+0x5040): undefined reference to `mmu_filament_count'

C:\Users\Tim\AppData\Local\Temp\ccy70zps.ltrans25.ltrans.o: In function `Config_StoreSettings()':

ccy70zps.ltrans25.o:(.text+0x588): undefined reference to `mmu_filament_count'

C:\Users\Tim\AppData\Local\Temp\ccy70zps.ltrans25.ltrans.o: In function `ad_getAlternative(unsigned char)':

ccy70zps.ltrans25.o:(.text.unlikely+0x23e): undefined reference to `mmu_filament_count'

C:\Users\Tim\AppData\Local\Temp\ccy70zps.ltrans5.ltrans.o: In function `mmu_loop()':

ccy70zps.ltrans5.o:(.text+0x10ae): undefined reference to `mmu_filament_count'

ccy70zps.ltrans5.o:(.text+0x12e6): undefined reference to `mmu_filament_count'

C:\Users\Tim\AppData\Local\Temp\ccy70zps.ltrans19.ltrans.o:C:\Users\Tim\AppData\Local\Temp\arduino_build_755722\sketch/ultralcd.cpp:6240: more undefined references to `mmu_filament_count' follow

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board PrusaResearch EINSY RAMBo.

design question

Impressive project! What CAD platform did you use for the design? Would you be willing to share the CAD files? I would like to put different sized fittings on the inlet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.