Z Crash after changing filament



  • A request for some help please.
    Generally my Cartesian printer is working well.
    My board and firmware is reported in DWC as: Duet WiFi 1.02 or laterFirmware: RepRapFirmware for Duet 2 WiFi/Ethernet 2.05.1 (2020-02-09b1)
    Duet WiFi Server Version: 1.23.

    The problem is that if I use my macros to unload and load filament and then start a print, bed.g and the custom start code in Prusa SLic3r runs normally, the head moves to its staring position and waits for the set temperatures and then the head crashes into the bed and seems to want to carry on downwards without stopping.
    I also have the same problem if I cancel a print and the start again from DWC (v 2.0.4).
    If I load a print from 'cold' everything is OK, as soon as the temperatures are correct the head moves and starts to print as expected.
    The work round is that I have to switch the printer off and restart after changing filaments. Not a big issue until I forget!
    I am sure I will be asked for the macros and gcode so here goes:
    Unload Macro:
    ;Unload Filament
    M291 P"Wait while nozzle heats up to 100C"
    T0 ;Select Tool 0
    M104 H1 S100 ;Set temp to 100C
    M116 ;Wait for Temp
    M291 P"Unloading Filament"
    G1 E-20 F600 ;Unload 10mm of filament
    G1 E-550 F3000 ;Unload 200mm of filament
    G1 E-40 F300 ;Unload 10mm of filament
    G4 P1000 ;Wait one second
    M400 ;Wait for moves to complete
    M292 ;Hide the message
    G10 S0 ;Turn off the heater again
    M291 P"Unload Complete"
    Load Macro:
    ;Load Filament
    M291 P"Homing All"
    G28
    G31 P500 Z20
    M291 P"Wait while nozzle heats up to 180C"
    T0 ;Select Tool
    M104 S180 ;Set temp to 180C
    M116 ;Wait for temp
    M291 P"Feeding Filament"
    G1 E200 F600 ;Feed in 20mm of filament at feedrate 600
    G1 E310 F3000 ;Feed in 550mm of filament at feedrate 3000
    G1 E100 F300 ;Feed in 40mm of filament at feedrate 300
    G4 P1000 ;wait one second
    M400 ;Wait for moves to complete
    M292 ;Hide the message
    G10 S0 ;Turn off the heater again
    M291 P"Load Complete"
    G28

    Duet Start.g
    ; Start
    G28 ;Home all
    G32 ;executes bed.g
    M83 ;extruder relative mode
    G1 X30 Y5 ;moves to X30 Y5
    M572 D0 S0.1

    Custom g Code in SLic3r:
    M140 S[first_layer_bed_temperature] ; set bed temp
    M190 S[first_layer_bed_temperature] ; wait for bed temp
    M104 S[first_layer_temperature] ; set extruder temp
    M109 S[first_layer_temperature] ; wait for extruder temp
    G92 E0 ; Set Extruder position to 0
    G1 Z0.1 F1000 ; Move Z to 0.1
    G1 X60.0 E4.0 F1000.0 ; prime
    G1 X100.0 E8.5 F1000.0 ; prime
    G92 E0 ; Set Extruder position
    T0
    M116 ; Wait
    M572 D0 S0.1 ; set pressure advance

    And finally my config.g (without networking info)
    ; General preferences
    M111 S0 ;Debugging off
    G21 ;Work in millimetres
    G90 ;Send absolute coordinates...
    M83 ;but relative extruder moves
    M555 P2; Set firmware compatibility to look like Marlin

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ;Set axis minimum
    M208 X220 Y220 Z125 S0 ;Set axis maximum

    ; Endstops
    M574 Z0 S0 ;Define active low and unused microswitches
    M574 X1 Y1 S1 ;Define microswitch - normally closed (S1) at low end (X1)
    M558 P1 A4 H2 R0.05 S0.03 F120 T6000 ;Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
    G31 P500 X-25 Y25 Z2.3 ;Set Z probe trigger value, offset and trigger height

    ; Mesh
    M557 X30:190 Y30:190 S160
    ;G29 S1

    ; Drives
    M584 X3 Y2 Z0:1 E4 ;two Z motors connected to driver outputs 2 and 4 (E1)
    M569 P0 S1 ;Z goes forwards (S1)
    M569 P1 S1 ;Z goes forwards (S1)
    M569 P2 S1 ;Y Axis goes forwards (S1)
    M569 P3 S0 ;X Axis goes backwards (S0)
    M569 P4 S0 ;Extruder goes backwards (S0)
    M92 X80.56 Y80.31 Z392 E417 ;Set steps per mm
    M350 X16 Y16 Z16 E64 I1 ;Configure microstepping with interpolation

    ; Speeds
    M201 X900 Y900 Z200 E3000 ;Accelerations (mm/s^2) (E= Extruder)
    M203 X15000 Y15000 Z100 E3600 ;Maximum speeds (mm/minute)
    M566 X900 Y900 Z200 E3000 ;Maximum Jerk speeds mm/minute

    ; Heaters
    M143 S300 ;Set maximum heater temperature to 300C
    M570 S150 ;Set maximum heating time to 150s
    M305 P1 T100000 B4725 C7.06e-8 R4700 L0 H0 ;Set thermistor + ADC parameters for heater 1 hot end
    M305 P0 T100000 B3950 C0 R4700 S"Bed" ;Set thermistor + ADC parameters for heater 0 bed

    ; Tools
    M563 P0 D0 H1 S"Hot End" ;Define tool 0
    G10 P0 X0 Y0 ;Set tool 0 axis offsets
    G10 P0 R0 S0 ;Set initial tool 0 active and standby temperatures to 0C

    ; Fans
    M106 P1 S1 I0 F500 H1 T45 ;Extruder fan (P1), Fan is turned on at 45deg (T) Full Spped (S) Thermostatic on (H)
    M106 P0 H-1 S0 C"Part Cooling Fan" ;Part Cooling Fan Switched off (S0) (switched on by Slicer)

    ; PID
    M307 H1 A560 C182 D7.8 S1.00 V24.3 B0
    M307 H0 A134 C889 10.9 D9.7 B0

    ; Leadscrews
    M671 X-70:270 Y100:100 S1.5 F1.0 ;leadscrews position relative to bed S= max correction (1mm) F= Fudge factor

    ; Motor Currents & Time Out
    M906 X1000 Y1000 Z1000 E800 I30 ;Set motor currents (mA) and motor idle factor in per cent (I)
    M84 S30 ; Set idle timeout

    ; CPU Temp Compensation
    M912 P0 S-10.6 ;CPU Temp Compensation

    Any help to resolve my problem and any suggestions to refine my macros and config will be appreciated.
    John S



  • @jmshep In your config.g, you have a G31 which sets the probe trigger height to 2.3. In your load macro, you have a G31 which sets the trigger height to 20. That'll be what bu**ers things up. When you cycle the power, it cures the problem because that runs config.g which resets the probe value to 2.3.



  • Thanks for the reply. I will make the changes and report back.



  • I am indebted to you it now works as intended. No excuses but that line was supposed to be G1 20 to raise the nozzle so that I could remove any excess filament.



  • @jmshep No worries - glad that fixed it.


Log in to reply