Tool switching inconsistancy



  • I'm getting some inconsistancies when switching tools - T1 seems to change the execution order of some of the GCODE instructions in the tpost1.g.

    The tool changing process is as follows:

    1 - Retract and Z hop
    2 - Move across to purge bucket
    3 - Retract for filament switch
    4 - Reset E values
    5 - Extrude new filament (reverse of 3)
    6 - Purge filament
    7 - Wait 1s for pressure to stabilise
    8 - Reverse previous Z hop
    9 - Wipe nozzle

    Observed tool changing process:
    Tool 0 always seems to work as expected. Tool 1 works perfectly on the first layer, but reverses the purge and wipes on subsequent layers (does the purge after the wipe). Tool 1 also seems to wait (longer than expected) between the preload of new filament and the purge.

    When 'manually' (via the GCODE console) switching between tools, the scripts behave as expected although T1 seems to have issues occasionally. I've not managed to figure out a pattern to it yet.

    Purge bucket sits at the end of the X carriage. The hotend is a shared nozzle with integrated 3 way split. Board is only configured for 2 extruders currently, but all 3 tool changing file sets (free, pre and post) are identical.

    Ender 3 - Duet 2 Wifi with 2.02 Firmware

    tfreeX.g:
    M83 ; Relative E mode
    G92 E0 ; Reset E
    G1 E-6 F1500 ; Retract 6mm @ 25mm/s
    G91 ; Relative moves
    G1 Z1.2 F1000 ; Lift nozzle 1.2mm
    G90 ; Exact moves
    G1 X245 F6000 ; Move to PurgeBox
    G92 E0 ; Reset E
    G1 E-50 F3000 ; Retract 50mm
    G92 E0 ; Reset E

    tpostX.g:
    M83 ; Relative E mode
    G92 E0 ; Reset E
    G1 E56 F3000 ; Extrude 56mm
    G1 E30 F300 ; Purge 30mm to clear chamber
    G4 P1000 ; Wait 1s
    G92 E0 ; Reset E
    G91 ; Relative moves
    G1 Z-1.2 F1000 ; Lower nozzle 1.2mm
    G90 ; Exact moves
    G1 X225 F6000 ; Wipe 1
    G1 X245 F6000 ; Wipe 2


  • administrators

    Please post your config.g file too.



  • ; Configuration file for Duet WiFi (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2 on Wed Jan 16 2019 20:01:12 GMT+0000 (Greenwich Mean Time)

    ; General preferences
    M555 P2 ; Set output to look like Marlin
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Network
    M550 P"EnderDuet" ; Set machine name
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Drives
    ; X
    M569 P0 S0 ; Drive 0 goes forwards
    ; Y
    M569 P1 S0 ; Drive 1 goes forwards
    ; Z
    M569 P2 S1 ; Drive 2 goes forwards
    ; E0
    M569 P3 S1 ; Drive 3 goes forwards
    ; E1
    M569 P4 S0 ; Drive 4 goes forwards
    ; E2
    ;M569 P5 S0 ; Drive 5 goes forwards

    ; DLV - 2019-01-22 14:20 - Map drives
    ; M584 X0 Y1 Z2 E3:4:5
    M584 X0 Y1 Z2 E3:4

    ; Multi-extruder
    M350 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
    ;M92 X80.00 Y80.00 Z400.00 E141.84:141.84 ; Set steps per mm
    ; DLV - 2019-04-06 17:35 - New E steps
    M92 X80.00 Y80.00 Z400.00 E141.84:141.84 ; Set steps per mm
    M566 X900.00 Y900.00 Z12.00 E120.00:120.00 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 Y6000.00 Z300.00 E1200.00:1200.00 ; Set maximum speeds (mm/min)
    M201 X1000.00 Y1000.00 Z150.00 E250.00:250.00 ; Set accelerations (mm/s^2)
    M906 X600.00 Y600.00 Z600.00 E600.00:700.00 I30 ; Set motor currents (mA) and motor idle factor in per cent

    ; Single Extruder
    ;M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    ;M92 X80.00 Y80.00 Z400.00 E141 ; Set steps per mm
    ;M566 X600.00 Y600.00 Z12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)
    ;M203 X9000.00 Y9000.00 Z1000.00 E1200.00 ; Set maximum speeds (mm/min)
    ;M201 X1000.00 Y1000.00 Z150.00 E250.00 ; Set accelerations (mm/s^2)
    ; DLV -2019-02-11 16:30 - Was 800mA, reduced to 700mA
    ;M906 X800.00 Y800.00 Z800.00 E800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
    ;M906 X700.00 Y700.00 Z700.00 E700.00 I30 ; Set motor currents (mA) and motor idle factor in per cent

    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; Set axis minima
    ; DLV - 2019-0-413 16:40 - Increased X to 245 for PurgeBox
    M208 X245 Y235 Z250 S0 ; Set axis maxima

    ; Endstops
    ;M574 Z1 S0 ; Set active low and disabled endstops
    M574 Z1 X1 Y1 S1 ; Set active high endstops

    ; Z-Probe
    M558 P0 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
    M557 X15:5 Y15:195 S20 ; Define mesh grid

    ; Heaters
    M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and
    ; DLV - 2019-01-22 13:15 - Tuned Heater settings
    M307 H0 A153.5 C555 D0.3 B0 ; Heatbed
    M307 H1 A438.4 C150.3 D6.2 B0 ; Hotend

    set PWM limit
    ; Bed
    M305 P0 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    ; Hotend
    M305 P1 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; Set temperature limit for heater 1 to 280C

    ; Fans
    M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Tools
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
    G10 P0 R180 S180 ; Set initial tool 0 active and standby temperatures to 0C
    M563 P1 D1 H1 ; Define tool 1
    G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
    G10 P1 R180 S180 ; Set initial tool 1 active and standby temperatures to 0C
    ;M563 P2 D2 H1 ; Define tool 2
    ;G10 P2 X0 Y0 Z0 ; Set tool 2 axis offsets
    ;G10 P2 R180 S180 ; Set initial tool 2 active and standby temperatures to 0C

    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

    ; Custom settings are not configured

    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory

    ; Pressure Advance
    ;M572 D0:1:2 S0.1
    M572 D0:1 S0.1


  • administrators

    I don't see anything wrong with your tool change files or your config.g, other than that you have a few unnecessary G92 E0 commands in the tool change files (but they shouldn't do any harm). Nor can I see any mechanism whereby the order of an XY movement and an E movement could be altered.

    Are you sure that none of the movements you are seeing are in the GCode generated by your slicer?



  • @dc42 said in Tool switching inconsistancy:

    Are you sure that none of the movements you are seeing are in the GCode generated by your slicer?

    I was until I just checked a the gcode file again. Looks like the slicer is still putting in the retraction and extrudes for the tool switch (even though I have the figures blanked out now - previously was using the slicer to handle the tool changes).

    Looks like the double retract and tool change made it look like it wasn't doing the purge before the wipe and the slicer then extruding to cancel the retraction is what I was mistaking for the purge.


 

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