Dual Extrusion Newbie



  • Hi I have just gone Dual Extrusion with a pair of the new E3D Titans, can I have any guidance re get the heads to the right temps at the right time. If I just run the print then Tool 1 heats up, then tool 2 heats up but tool 1 starts cooling down. If I intervene manually before the print and set both tools to 190 deg for both active and standby then the print works, but I would prefer this info to come from the slicer. Also for some reason only the tool 2 part cooling fan came on and I had to manually set the tool1 part cooling fan.



  • I'm assuming that you have separate hot ends for each of your extruders and that you are not using a mixing hot end. In which case, you are on the right lines with active and standby temperatures but if you want the slicer to do it, then you need to put those commends in the slicer start gcode. It is usual to set standby temperature lower than active to prevent filament oozing from the unused nozzle. Of course, you then have to wait for the unused one to come up to active temperature. You could also consider using the tpre, tpost and tfree macros to get the behaviour you want. Ref part cooling fans, can you post the relevant section of your config.g.



  • Hi, yes dual extruders as per http://www.thingiverse.com/thing:2240611, Tool 1 fan on normal printing comes on fine.

    ; Tools
    M563 P0 D0 H1 F1; Define tool 0
    G10 P0 X-24 Y0 Z0 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    M563 P1 D1 H2 F2; Define tool 1
    G10 P1 X21.04 Y-0.8 Z0 ; Set tool 1 axis offsets
    G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C

    ; Fans
    M106 P1 S0 I0 F500 H-1 ; Set fan 1 value, Extruder 1 Part Fan. PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P2 S0 I0 F500 H-1 ; Set fan 2 value, Extruder 2 Part Fan. PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P0 S1 I0 F500 H2 T45 ; Set fan 0 value, Extruder 2 Fan. PWM signal inversion and frequency. Thermostatic control is turned on



  • OK. A couple of things. You are referring to your tools as tool 1 and tool 2, yet they are defined as tool 0 and tool 1. that is to say, by default Duet start the tool numbering at 0. This can often catch people out, as many slicers will start the tool numbering at 1 so you kind of have to remember that tool 1 it the slicer is tool 0. You can use the S1 parameter in M563 which will effectively add one to the toll numbers for the Duet.

    However, that may not be the reason for the second part cooling fan not coming on. You have mapped Fan 1 to Fan 0 in your first M563, then you have mapped Fan 2 to Fan 0 in your second M563. I'm not sure but I suspect that the second command overwrites the first. If so, then I think the only way around it would be to use F1:2 for both Tool 0 and Tool 1. This would map both fans to fan 0. The downside is that both part cooling fans would run regardless of which tool is selected but I don't think there is any way around it. (DC42 will know for sure).

    HTH

    Ian



  • I found an inelegant solution for the extruder temp by modifying the start gcode in the slicer to:
    G28 XY ; home all axes
    G90 ; use absolute coordinates
    G21 ; set units to millimeters
    G92 E0
    M82 ; use absolute distances for extrusion
    G10 P1 R190 S190
    G10 P0 R190 S190
    M572 D0 S0.025; Pressure advance
    M572 D1 S0.025; Pressure advance

    The temps are added via slicer variables, it works, as in both extruders heat at the same time, but one starts before the other because of some other gcodes that are added by the slicer, but at least I don't get one heating, while the other cools.

    The fans are more of a problem, the slicer only sends an M106 S127 (50%) and doesn't include the fan number variable. so the only thing I can do is as you say set both fans for both tools, but its not ideal. particularly as I have the extruder head fan set to thermal so it doesn't come on unless in use.

    The tool numbers work fine as 0 and 1 as that's what the slicer sends.

    I've got the tech support looking at the issue so maybe they will come back with something.


  • administrators

    @deckingman:

    You are referring to your tools as tool 1 and tool 2, yet they are defined as tool 0 and tool 1. that is to say, by default Duet start the tool numbering at 0. This can often catch people out, as many slicers will start the tool numbering at 1 so you kind of have to remember that tool 1 it the slicer is tool 0. You can use the S1 parameter in M563 which will effectively add one to the toll numbers for the Duet.

    Ian, can you name any slicers that assume tool numbering starts from 1?

    The standard for RRF was originally that tool numbers started from 1, and tool 0 was the empty tool. But the common slicers were numbering tools from 0. So the recommended configuration was changed to number tools from 0 and use T-1 to deselect all tools.



  • @dc42:

    Ian, can you name any slicers that assume tool numbering starts from 1?

    The standard for RRF was originally that tool numbers started from 1, and tool 0 was the empty tool. But the common slicers were numbering tools from 0. So the recommended configuration was changed to number tools from 0 and use T-1 to deselect all tools.

    Hi David,

    Yes Slic3r and Prusa variants thereof. If you have a multi-part object and want to assign different tools to each part, say tools 0, 1 and 2 you have to use extruders 1, 2, and 3. However, I can see how we might be talking at cross purposes because the generated gcode file will have the correct tool number - i.e. 0, 1 and 2. That is to say, that "internally" Slicr3r considers them to be tools 1, 2 and 3 but in the external output, these tool numbers are decremented by 1 giving 0, 1 and 2.

    As the OP was referring to tools 1 and 2 and not knowing what slicer behaviour he had, I put forward the proposition that tool numbering might be an explanation for his switching problems. Obviously this is not the case and although he refers to them as tools 1 and 2, the gcode file must in fact have T0 and T1 commands.

    I do however think that as a self confessed duel extruder newbie, it would be advisable for the OP to get used to referring to them as tools 0 and 1 because this is what the gcode file must contain and this is how Duet works.

    Hope that clarifies my previous post.

    Ian



  • Hi DC42, I am still having some issues with this, I have tried two different slicers, MatterControl and Cura 2.4, they handle temperatures differently in the gcode for instance, neither sliceer seems to understand standby temps so for MatterControl you get:

    M107 ; fan off
    M190 S30 ; wait for bed temperature to be reached
    M104 T0 S190 ; start heating extruder 1
    M104 T1 S230 ; start heating extruder 2
    T0 ; set the active extruder to 0
    ; settings from start_gcode
    G28 XY ; home all axes
    G90 ; use absolute coordinates
    G21 ; set units to millimeters
    G92 E0
    M82 ; use absolute distances for extrusion
    ; automatic settings after start_gcode
    M109 T0 S190 ; wait for extruder 1 to reach temperature
    M104 T1 S230 ; Start heating extruder2
    M109 T1 S230 ; Finish heating extruder2
    T0 ; set the active extruder to 0
    G92 E0 ; reset the expected extruder position

    Cura does it differently:
    M190 S30
    M104 S190
    M104 T1 S230
    M109 S190
    M109 T1 S230
    G21 ;metric values
    G90 ;absolute positioning
    M82 ;set extruder to absolute mode
    M107 ;start with the fan off
    G28 X0 Y0 ;move X/Y to min endstops
    G28 Z0 ;move Z to min endstops
    G1 Z15.0 F9000 ;move the platform down 15mm
    T1 ;Switch to the 2nd extruder
    G92 E0 ;zero the extruded length
    G1 F200 E6 ;extrude 6 mm of feed stock
    G92 E0 ;zero the extruded length again
    G1 F200 E-1.2
    T0 ;Switch to the 1st extruder
    G92 E0 ;zero the extruded length
    G1 F200 E6 ;extrude 6 mm of feed stock
    G92 E0 ;zero the extruded length again
    G1 F9000

    What I have noticed is that with the Duet it will ignore temperature commands if its not the currently active tool, is this by design? This means that the gcode above just doesn't work as it is sending a temp command but not switching to that extruder beforehand, so its ignored and what I get if I don't manually interfere or modify the start code with G10 commands is that one tool heats up then the second, but the first tool starts to cool.

    Another lousy issue is that Cura seems to have a mind of its own with temps and always seems to want to cool the inactive tool, ignoring the temps set in Cura, but that's another story.


  • administrators

    RRF doesn't ignore temperature commands when the tool isn't active. What it does is set the active temperature of all heaters associated with that tool to the temperature in the command. So next time you select the tool, that will be the temperature that the tool heats up to.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.