Prusa Slicer Dual extruders
-
I've been using Cura with my dual extruder machine. I wanted to try Prusa slicer and although it supports multiple extruders there's an issue with the Duet and the gcode produced.
It doesn't define the tool e.g. T0 and hence the Duet reports an error of no tool selected. I don't want to have to edit gcode to 'fix this. Anything I'm missing?
-
I use PrusaSlicer for dual extruder (IDEX) prints.
Have you selected the other extruder to use for parts of the print? Confusingly, they refer to T0 and T1 as "1 and 2" when selecting the tools for printing. The number 0 in multi extruder is used for "don't care" extruder -- it will print with whatever extruder is most convenient.
-
@bot I just wanted to use the left extruder we’ll call it so I selected 1 (default and 2 the other options). I assumed this would add T0 to the gcode so Duet would know which hot end to make active. Trying default or 1 doesn’t define the tool and therefore no tool is made active
-
You might have to define your own toolchange custom gcode in the printer options.
Something like:
; Custom tool change G-code T{next_extruder} P0 ; select tool M116 P{next_extruder} ; wait for temperature
For single extruder prints, you have to put it in your start gcode like this:
T{initial_extruder} P0 ; select tool M116 P{initial_extruder} ; wait for temperature
-
@bot said in Prusa Slicer Dual extruders:
You might have to define your own toolchange custom gcode in the printer options.
Something like:
; Custom tool change G-code T{next_extruder} P0 ; select tool M116 P{next_extruder} ; wait for temperature
For single extruder prints, you have to put it in your start gcode like this:
T{initial_extruder} P0 ; select tool M116 P{initial_extruder} ; wait for temperature
Thanks, I'll look at this. It's a bit odd to me that if I select the 2nd extruder it places T1 in the g-code
example:
; generated by PrusaSlicer 2.3.0+win64 on 2021-01-28 at 08:57:14 UTC ; ; external perimeters extrusion width = 0.45mm ; perimeters extrusion width = 0.45mm ; infill extrusion width = 0.45mm ; solid infill extrusion width = 0.45mm ; top infill extrusion width = 0.40mm ; first layer extrusion width = 0.42mm M107 M190 S60 ; set bed temperature and wait for it to be reached M104 S220 T1 ; set temperature ;TYPE:Custom ;G28 ; home all axes ;G1 Z5 F5000 ; lift nozzle G28 ;Home G29 S1 P"/sys/heightmap.csv" G1 Z15.0 F6000 ;Move the platform down 15mm ;Prime the extruder G92 E0 ;G1 F200 E3 M98 P"0:/sys/purge.g" G92 E0 M109 S220 T1 ; set temperature and wait for it to be reached G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 T1 G92 E0 ; Filament gcode ;LAYER_CHANGE ;Z:0.2 ;HEIGHT:0.2 G1 Z0.200 F7800.000 G1 E-1.60000 F2400.000 G92 E0 G1 X-0.015 Y-18.367 F7800.000 G1 E1.60000 F2400.000 ;TYPE:Skirt
However it I select the 1st extruder it omits the T0
; generated by PrusaSlicer 2.3.0+win64 on 2021-01-28 at 08:58:08 UTC ; ; external perimeters extrusion width = 0.45mm ; perimeters extrusion width = 0.45mm ; infill extrusion width = 0.45mm ; solid infill extrusion width = 0.45mm ; top infill extrusion width = 0.40mm ; first layer extrusion width = 0.42mm M107 M190 S60 ; set bed temperature and wait for it to be reached M104 S220 ; set temperature ;TYPE:Custom ;G28 ; home all axes ;G1 Z5 F5000 ; lift nozzle G28 ;Home G29 S1 P"/sys/heightmap.csv" G1 Z15.0 F6000 ;Move the platform down 15mm ;Prime the extruder G92 E0 ;G1 F200 E3 M98 P"0:/sys/purge.g" G92 E0 M109 S220 ; set temperature and wait for it to be reached G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 ; Filament gcode ;LAYER_CHANGE ;Z:0.2 ;HEIGHT:0.2 G1 Z0.200 F7800.000 G1 E-1.60000 F2400.000 G92 E0 G1 X-0.015 Y-18.367 F7800.000 G1 E1.60000 F2400.000 ;TYPE:Skirt
-
It likely assumes T0 is selected by default. I have T0 at the end of my config g
-
@oliof Yeah. PrusaSlicer has weird behaviour around that. It initializes a tool change at the beginning if any extruder other than "1" (T0) is used for any part of the print. If using only T0, there is no such beginning tool change.
Also, you should use RepRapFirmware flavour of G-Code.
-
@bot I’ve added the T0 to config.g as suggested above. Using reprap FW in settings. First few test prints look good to be fair. A benchy looked better than from Cura
-
Hi @bot,
Your G-code helped me a lot except for thing... it doesn't reduce the temperature of none selected extruder after the switch.
I have a Raise3D Pro2 and in order to do the switch between the extruders both of them need to be set to the filament temp, otherwise, it won't do the switch.If you have any idea on how to reduce the temp (of the none used extruder) after the print starts, that would be great - right now, I'm doing it manually
Cheers / Ben
-
This is what I do in my Start G-Code in PrusaSlicer:
{if first_layer_temperature[0] > 0.0} T0 P0 T-1 P0 G10 R170 S{first_layer_temperature[0]} P0 ; set T0 temperatures {else} G10 R0 S0 P0 {endif} {if first_layer_temperature[1] > 0.0} T1 P0 T-1 P0 G10 R170 S{first_layer_temperature[1]} P1 ; set T1 temperatures {else} G10 R0 S0 P1 {endif}
I just have the standby temperature hardcoded. I don't know if you are using RRF or not with your Raise3D, but you should be able to accomplish something similar with other firmware gcodes.
-
@bot ,
Where exactly do I need to put this code? At the beginning before all the G-codes? -
@benko hi! I stumbled across this thread while trying to adapt my Makergear M3 IDEX to prusaslicer. On marlin, but we're trying to accomplish the same thing!
The start g -code goes under "Printer Settings -> Custome G-Code -> Start Gcode"
Could I see your tool change g-code? That's where I'm stuck.