First layer color printing with single extruder
I am trying to print first layer in color and using prusa slicer. For some reason when color change occurs nozzle stops and print cancels. Another times it deselects tool and does not extrude. What gcode should i need to insert in the slicer? There are options for filament, filament change gcode section where start and end gcode is configured. Perhaps there already is a write up for duet powered printers?
mloidl last edited by mloidl
PrusaSlicer will add a M600 command when requesting a colorchange
If you're using Firmware 2.02 or later then filament-change.g is called if existent. Otherwise like M226 pause.g is called.
My workflow is at follows:
- Initiate Pause (M600 calling pause.g)
- unload the Filament (M702)
- load the new Filament (M701)
- resume the print (M24)
for reference, these are my macros
; pause.g ; called when a print from SD card is paused ; ; generated by RepRapFirmware Configuration Tool on Tue Feb 20 2018 18:59:20 GMT+0100 (CET) M83 ; relative extruder moves G1 E-10 F3600 ; retract 10mm of filament G91 ; relative positioning G1 Z5 F360 ; lift Z by 5mm G90 ; absolute positioning G1 X0 Y0 F6000 ; go to X=0 Y=0''
;filaments/PETG/load.g M291 P"Please wait while the nozzle is being heated up" R"Loading PETG" T5 ; Display message G10 S225 ; Set current tool temperature to 225C M116 P0; Wait for hotend temperature to be reached M291 P"Feeding filament..." R"Loading PETG" T5 ; Display new message G1 E5 F600 ; Feed 10mm of filament at 600mm/min G1 E40 F3000 ; Feed 45mm of filament at 3000mm/min G1 E55 F250 ; Feed 55mm of filament at 250mm/min G4 P1000 ; Wait one second G1 E-5 F1800 ; Retract 5mm of filament at 1800mm/min M400 ; Wait for moves to complete M292 ; Hide the message
;filaments/PETG/unload.g M291 P"Please wait while the nozzle is being heated up" R"Unloading PETG" T5 ; Display message G10 S225 ; Heat up the current tool to 225C M116 P0; Wait for the hotend temperature to be reached M291 P"Retracting filament..." R"Unloading PETG" T5 ; Display another message G1 E10 F300; G1 E-10 F4500 ; Retract 30mm of filament at 4500mm/min G1 E-70 F3000 ; Retract 70mm of filament at 3000mm/min M400 ; Wait for the moves to finish M292 ; Hide the message again
I'm guessing that, because you want to change colour, the slicer has inserted a tool change, ie your first tool is T0, and then at the tool change the gcode calls for T1. As you probably don't have a second tool defined, the T1 command deselects the tool. Posting the gcode file and your config.g would help to show what the exact problem is.
I haven't played around with Prusa Slicer, so I don't know how it handles tool changes, or if it can be set up for single nozzle/extruders. What you really want it to do is, rather than a tool change, to pause the print so you can manually change the filament. Check the slicer documentation for different setups.
@mloidl are you using prusa slicer as well? BTW i am on 2.03 FW. If you are on slicer, what have you on printer settings, single extruder multi material ticked or not?
@droftarts I think that is whats happening. I probably need to dig into generated gcode and see how it handles it. I dont want to do manual editing of a gcode files but to set slicer to do it correctly or duet to handle it
These are my settings
I have a Single Extruder / Single Nozzle setup.
If you have the same would you share some generated gcode?
I have set 5 extruders for 5 colors. Otherwise i cant automate i guess. I want to print multiple colors within one layer.
This is what comes out no matter if i tick single extruder checkbox:
G1 E-4.00000 F2100.00000
Here M600 and T0 is set by me in layer change gcode section but it forces and inserts T1 after that.
I can some how fix that by adding Perimeter extruder on my second color part as advance option and then it does not add T1. Still i would like to find a way so it does not do that as its extra steps if you have 5 colors to set in slicer.
I dont know how you set it so it pauses mid layer print so you can continue printing with a different color.
Its all fine when printing multicolor layers but within one layer?
This is what i need to add to remove tool change to T1. Or maybe i just need to set extruder to 1 instead of 2 and that will do the trick.
If i understand you correctly this is not supported by any slicer i know.
Please correct me if i'm wrong.
- One Extruder
- One Nozzle
and want to print multiple colors within one layer.
This would mean that you would bring the slicer to print one part of the layer add some color change g-code, print the other part of the layer.
This also means you would have to manually change the filament each within one layer, since it will not be possible to do this automatically with one Extruder (except you have the multi color addon on a prusa i3 mk3).
yes, its a manual change on single extruder/nozzle but its not too bad if you need a text or logo or something that requires single or multiple color change on bottom and or top layer. For full color parts it would be crazy.
I have done it and it works with prusa slicer. Only issue is that T1 tool change which i found a workaround.
You can print something like this:
which is very nice.
This is what i have so far:
I had to pause print manually to enter T0 command on DWC so there are some gaps between text and infill as i forgot to extrude extra cause of retraction before pause.
My printers are busy atm but i will test my workaround and report.
I will also add M117 to send message to tell what color to load.
P.S. M117 works only with panel due. Perhaps @dc42 could help with displaying messages on maestro LCD screens?
Now i fully understand.
I did some experiments (without printing).
You could write a post-process script which removes all Tx GCodes and add a filament specific GCode which insert a M600 + M117 (including the color you want to insert).
You have to make sure that the correct color is loaded when starting the print and ensure that there is no M600 when starting the Print.
Have you tried putting the filament change actions in the tool change macros. That way when the slicer pits Tn in the gcode the actions you want occur?
i rather explore if i can make it work within slicer first. Post scripting is just another step added. Too lazy
i did try it. It adds M600 and T0 the way i specify, but then it adds T1 after the tool change script. I could not find a setting to alter that so it might be embedded into slicer
oliof last edited by
You need to set the check mark at "single extruder multi material" at least. After all that's what's needed for the Multi Material Unit which you aim to simulate manually (-;
@Agniusm I meant set a tool for each colour, then create multiple tools in RRF, one for each colour where the toolchange scripts carry out the actions you want. This is instead of M600.
The slicer can then just happily use its normal process for dealing with multiple colours (1 per extruder), by sending ,T0, T1 etc
@T3P3Tony i got you. Thanks. Good point. So on the slicer i would just add tool change gcode command and set different tools for colors on the duet?!
Good to have that option too.
So i have mostly sorted. I dont know how but now after slicing T1 is added and after that T0 which i specify in filament gcode.
M600 did work but introduced lag. After resume, nozzle would land and sit for 30 seconds blobbing and then leaving gap until filament catches up.
I have changed to M226 and now all is good.
I can also add M291 P"Change to Red" T0 on slicer so the message is displayed on maestro lcd what color to insert. Handy if 5 color changes are used.
So to sum up, on Prusa Slicer 2.0.0
Filament start gcode will have T0 to reverse to tool 0, M291 for color message
Printer settings custom gcode tool change gcode will have M226 for pause.
So on the slicer i would just add tool change gcode command and set different tools for colors on the duet?!
Yes. and the slicer will add the Tn Commands automatically.