Simple way to print in "Real" multi-color without MMU or layer height based changes  

Page 1 / 4
  RSS
rainer.s
(@rainer-s)
Eminent Member

I've been working on creating a printer profile for the MK3, that allows to print in "real" multi-color without a MMU or any other Hardware modification.
This will allow to change the color in the middle of the layer, (not like the "ColorPrint" method where one layer was always limited to only one color)

(every print in this pic was done with only 2-5 filament changes (2 for 2 colors, 5 for 3 colors.. The colored part goes over just 2 layers)

This profile has 5 "virtual" extruders and the filament changes will be implemented via M600 as part of the "tool change".

You can actually print anything a MMU could print as well, but obviously it works best where you have only a small amount of filament changes. Everything in the above picture was printed with a 3-5 filament changes which can easily be handled manually.

I wrote full instruction for this and you can find all info + the required download on my Blog:
https://schlosshan.eu/blog/2019/03/02/prusa-i3-mk3-real-multicolour-prints-without-mmu/

it is actually quite easy to do, so go and try it out.
If you have any questions or feedback, let me know.

Rainer

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 05/03/2019 10:57 am
rob.l6
(@rob-l6)
Honorable Member

Interesting. Thanks for sharing.

...
Posted : 05/03/2019 11:38 am
guy.k2
(@guy-k2)
Noble Member

+1 on thanks. This will get bookmarked for reference.

Posted : 05/03/2019 5:37 pm
vintagepc
(@vintagepc)
Noble Member

Very useful. I was doing this manually on layer 1 with separate G-Code files but this is less painful.

Posted : 05/03/2019 5:41 pm
Bytor
(@bytor)
Estimable Member

While it is great to be able to do this without the MMU or Palette Pro unit I don't see this useful for big projects... something that is multi-hours or days to print. You have to be there to manually change the filaments which reduces its usefulness. Speaking for myself, I can't sit in front of my printer for hours waiting for the color changes, especially when I have a 16 hour print job and at least a few hundred tool changes.

3D printing newbie - wanting to learn 😀 - 1st "printer" TIKO 3D
- 2nd PRUSA i3 MK2S with MMU v1
- 3rd PRUSA i3 MK2S
- 4th PRUSA i3 MK3 with MMU v2 on order...
Posted : 05/03/2019 6:42 pm
rainer.s
(@rainer-s)
Eminent Member

well. it is not intended for Big parts where the colors go over a huge number of layers.
But it works great for all kind of signs, name plates, or everything where you want to add colored text or patterns to a flat surface.

If you want to create some "input" for this method, you can try my Sign workshop:

https://schlosshan.eu/blog/2019/03/03/customizable-sign-workshop-mmumulti-color-or-single-color-printer/
which works perfect for this method.

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 05/03/2019 6:50 pm
guy.k2
(@guy-k2)
Noble Member

I think you are losing the M117 message when
void gcode_M600 does
if(!mmu_enabled) M600_wait_for_user(HotendTempBckp);

M600_wait_for_user does
lcd_display_message_fullscreen_P(_T(MSG_PRESS_TO_UNLOAD));

I compiled a version of my 3.6.0 firmware (for mk3) with that lcd_display_message_fullscreen_P commented out.
See if this helps with the M117 message going away too soon.

(This is compiled for a mk3, not mk3s)

Unzip before flashing to printer.
As usual, testing is at own risk.

Posted : 05/03/2019 7:53 pm
rainer.s
(@rainer-s)
Eminent Member

guy k2, thx a lot for that.. only problem, i can't test it as i have a bondtech BMG installed and am running a custom FW with different filament change length.. i currently run the chris warkoki version (the one for 1.8 motor)...
Anybody else here that would be willing to test that change?

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 05/03/2019 8:25 pm
guy.k2
(@guy-k2)
Noble Member

Is that the BMG16 or BMG32 variant?
I have downloaded his fork and can recompile with the change, but I don't know which variant you are running.

Posted : 05/03/2019 8:42 pm
rainer.s
(@rainer-s)
Eminent Member

it is the Firmware.HDMBL32.hex (i downloaded it from here: https://github.com/prusa-community-forum/Prusa-Firmware/releases
i could test it tomorrow afternoon

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 05/03/2019 8:46 pm
guy.k2
(@guy-k2)
Noble Member

Here is the Warkoki branch firmware BMG32 variant with my commenting out the initial lcd message.

Hopefully works. I didn't dive into his code. Merely downloaded his fork. Set the variant. Made the LCD message edit, and compiled it.

Edit: Hold on. You might be using a different fork. I'll redo based on the source code for the BMG firmware you linked.

OK this is based on the branch for Firmware.HDMBL32.hex

Posted : 05/03/2019 9:00 pm
rainer.s
(@rainer-s)
Eminent Member

Thx, i'll test it tomorrow.
if it works, it is going to remove the "original" message which is displayed by that line. so still nothing that would probably have a chance to be accepted as a pull request 😉 ... but at least a start.

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 05/03/2019 9:24 pm
rainer.s
(@rainer-s)
Eminent Member


OK this is based on the branch for Firmware.HDMBL32.hex

warkoki bmg32 with kuo edit out msg.hex.zip

Hi, i tried it and it works!
i installed your the FW with your change and printed something in 2 colors using my profile.
when a filament change is required the printer will display this message:

The text comes from the m117 command in my tool change gcode
The "0" represents the "next extruder number"
and the color will automatically be chosen based on the RGB value of the next filament

when then clicking the button it will unload the filament:

and then

So it works!
i'll keep this FW installed for now, but basically i would much prefer a solution in the official FW, as it should be as easy as possible to use this method.

Note to everybody else, before using this new "test" FW, the m117 would only display the message for a couple of seconds while the extruder was moving from the print to the park position. Then as soon as it arrived at the park position, the "full screen" filament change message was getting displayed.
i already asked for a new feature to fix this in this issue on github: https://github.com/prusa3d/Prusa-Firmware/issues/1471

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 06/03/2019 5:13 pm
rainer.s
(@rainer-s)
Eminent Member

i still think the "cleanest" solution would be to have a message parameter for the M600 command.
the M600 command otherwise would not be able to determine if a message from a previous M117 command would still have to be displayed or not.
And something like
"M600 Switch to Yellow (0)"
would probably be the best solution.
When initiating a filament change it is just logic that we are changing to a different filament than the one currently loaded, so how should the user know which filament to change to without a message parameter wich could be used to provide some details?

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 06/03/2019 5:53 pm
guy.k2
(@guy-k2)
Noble Member

Getting M600 to accept a text message takes more code space and effort. The parsing may be a problem. It also is limited in what characters can be in the message. The Prusa firmware does special treatment of M117. If you look at the firmware you find that M117 is not in the normal case code.

//moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^"

Would you be satisfied if I added an optional "Q" parameter to M600 that causes it to behave like I did in my patch - not immediately replace the current LCD message?

The you can code something like...


M117 This is my arbitrary filament change message
M600 Q

That would be trivial to implement, take up very little code space, and would be a reasonable pull request.

[EDIT] Actually.... here is the warkoki bmg32 firmware with M600 Q parameter implemented for your testing.
If this works adequately, we can put together a formal fork and submit a pull request.

Posted : 06/03/2019 9:07 pm
rainer.s
(@rainer-s)
Eminent Member

The change you did works great for me. Thanks a lot again!
I am just trying to think about way of how this could be implemented to get it into the "official" mk3 Firmware 😉
The reason why i posted the profile was to make it as easy as possible for everybody else to use this..
and anythng where a normal user would have to flash an alternative firmware would probably be too much for 95%.

The "Q" parameter sound like a great idea. it takes away a lot of the other potential problems which might a pull request difficult to be accepted.

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 06/03/2019 9:36 pm
rainer.s
(@rainer-s)
Eminent Member

i'm going to test the new "Q" parameter tomorrow and will let you know the results asap!

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 06/03/2019 9:38 pm
guy.k2
(@guy-k2)
Noble Member

I look forward to your results

Just a reminder to others reading, the above firmware was built for a BMG32 extruder. Don't try it on a stock machine.

==========

For those on Mk3's who want to play along, here is my 3.60 firmware with the M600 Q param implemented.
This also has the meshbed G80 N7 Rn capability.

*** Effective linear correction range is wider than normal in this particular Mk3 firmware. Set all axis linear corrections OFF (or 1.124, my optimal) when first using this version of firmware. Lower values will stall your motors. ***

Posted : 06/03/2019 9:54 pm
rainer.s
(@rainer-s)
Eminent Member

I just gave it a quick try before going to work, and it works!
for this test i just send
M117 test message
M600 Q

command as GCode. Will give it a full Test this afternoon after work

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 07/03/2019 7:31 am
rainer.s
(@rainer-s)
Eminent Member

I used my lunch break for a more in depth test.
i changed the tool change GCode in my profile and added the new "Q" parameter to M600 and printed something with 2 colors. The print will start with yellow filament loaded in extruder "0"
The config has yellow for extruder "0" and red for extuder "1".
The message from the M117 command does get displayed as expected:


This is the finished print with just those 2 filament changes:

So this change works perfectly in my opinion.
This change combined with the multicolor profile allows you to print in multiple colors, and have a proper message to which color / extruder to change to.
So it can't be much easier (without MMU or palette)

Thanks a lot guy.k2! 😀

and using the "Q" parameter, i think this is a "clean" solution so might be worth putting a pull request in for the original firmware to allow everybody else to take advantage of this change without having to reflash to an unofficial Firmware.

i slightly changed the title of the issue on github to better match this change:
https://github.com/prusa3d/Prusa-Firmware/issues/1471

Rainer

Edit: in case you want to give it a try with one of the 2 FW variants that guy.k2 posted above, in my profile you just have to change one line in the "Tool change GCode"
change the line with the M600 command to
M600 Q

Blog: https://schlosshan.eu
Thingiverse: https://www.thingiverse.com/rainers/collections/rainers-customizable-things
Prusaprinters: https://www.prusaprinters.org/social/6508-rainer/collections/6900
Happy printing ;-)...
Posted : 07/03/2019 1:19 pm
Page 1 / 4
Share:

Please Login or Register