Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Prusa Slicer Dual extruders

    Scheduled Pinned Locked Moved
    Third-party software
    5
    12
    5.3k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Blacksheep99undefined
      Blacksheep99
      last edited by

      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?

      1 Reply Last reply Reply Quote 0
      • botundefined
        bot
        last edited by bot

        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.

        *not actually a robot

        Blacksheep99undefined 1 Reply Last reply Reply Quote 0
        • Blacksheep99undefined
          Blacksheep99 @bot
          last edited by

          @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

          botundefined 1 Reply Last reply Reply Quote 0
          • botundefined
            bot @Blacksheep99
            last edited by

            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
            

            *not actually a robot

            Blacksheep99undefined BENKOundefined 2 Replies Last reply Reply Quote 0
            • Blacksheep99undefined
              Blacksheep99 @bot
              last edited by

              @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
              
              1 Reply Last reply Reply Quote 0
              • oliofundefined
                oliof
                last edited by

                It likely assumes T0 is selected by default. I have T0 at the end of my config g

                <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                botundefined 1 Reply Last reply Reply Quote 2
                • botundefined
                  bot @oliof
                  last edited by

                  @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.

                  *not actually a robot

                  Blacksheep99undefined 1 Reply Last reply Reply Quote 0
                  • Blacksheep99undefined
                    Blacksheep99 @bot
                    last edited by

                    @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

                    1 Reply Last reply Reply Quote 1
                    • BENKOundefined
                      BENKO @bot
                      last edited by

                      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

                      1 Reply Last reply Reply Quote 0
                      • botundefined
                        bot
                        last edited by bot

                        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.

                        *not actually a robot

                        BENKOundefined 1 Reply Last reply Reply Quote 0
                        • BENKOundefined
                          BENKO @bot
                          last edited by

                          @bot ,
                          Where exactly do I need to put this code? At the beginning before all the G-codes?

                          wyzurdundefined 1 Reply Last reply Reply Quote 0
                          • wyzurdundefined
                            wyzurd @BENKO
                            last edited by

                            @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.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post
                            Unless otherwise noted, all forum content is licensed under CC-BY-SA