diff --git a/printer_data/config/macros/print_start.cfg b/printer_data/config/macros/print_start.cfg index bbfe38f..20e29a4 100644 --- a/printer_data/config/macros/print_start.cfg +++ b/printer_data/config/macros/print_start.cfg @@ -1,18 +1,93 @@ -[gcode_macro PRINT_START] -# Use PRINT_START for the slicer starting script - please customise for your slicer of choice -gcode: - {% set bedtemp = params.BED|int %} - {% set extrudertemp = params.EXTRUDER|int %} +# [gcode_macro PRINT_START] +# gcode: +# {% set bedtemp = params.BED|int %} +# {% set extrudertemp = params.EXTRUDER|int %} - STATUS_HEATING - M109 S140 +# STATUS_HEATING +# M109 S140 - STATUS_HEATING - M190 S{bedtemp} +# STATUS_HEATING +# M190 S{bedtemp} - STATUS_HOMING - G32 ; home all axes - G1 Z20 F3000 ; move nozzle away from bed +# STATUS_HOMING +# G32 ; home all axes +# G1 Z20 F3000 ; move nozzle away from bed - STATUS_HEATING - M109 S{extrudertemp} \ No newline at end of file +# STATUS_HEATING +# M109 S{extrudertemp} + +[gcode_macro PRINT_START] +gcode: + {% set target_bed = params.BED|int %} + {% set target_extruder = params.EXTRUDER|int %} + {% set target_chamber = params.CHAMBER|default("45")|int %} + {% set x_wait = printer.toolhead.axis_maximum.x|float / 2 %} + {% set y_wait = printer.toolhead.axis_maximum.y|float / 2 %} + + # Home the printer, set absolute positioning and update the Stealthburner LEDs. + STATUS_HOMING # Set LEDs to homing-mode + G28 # Full home (XYZ) + G90 # Absolute position + + BED_MESH_CLEAR # Clear old saved bed mesh (if any) + + # Check if the bed temp is higher than 90c - if so then trigger a heatsoak. + {% if params.BED|int > 90 %} + SET_DISPLAY_TEXT MSG="Bed: {target_bed}c" # Display info on display + STATUS_HEATING # Set LEDs to heating-mode + M106 S255 # Turn on the PT-fan + + ## Uncomment if you have a Nevermore. + #SET_PIN PIN=nevermore VALUE=1 # Turn on the nevermore + + G1 X{x_wait} Y{y_wait} Z15 F9000 # Go to center of the bed + M190 S{target_bed} # Set the target temp for the bed + SET_DISPLAY_TEXT MSG="Heatsoak: {target_chamber}c" # Display info on display + TEMPERATURE_WAIT SENSOR="temperature_sensor chamber" MINIMUM={target_chamber} # Waits for chamber temp + + # If the bed temp is not over 90c, then skip the heatsoak and just heat up to set temp with a 5 min soak + {% else %} + SET_DISPLAY_TEXT MSG="Bed: {target_bed}c" # Display info on display + STATUS_HEATING # Set LEDs to heating-mode + G1 X{x_wait} Y{y_wait} Z15 F9000 # Go to center of the bed + M190 S{target_bed} # Set the target temp for the bed + SET_DISPLAY_TEXT MSG="Soak for 5 min" # Display info on display + G4 P300000 # Wait 5 min for the bedtemp to stabilize + {% endif %} + + # Heat hotend to 150c. This helps with getting a correct Z-home. + SET_DISPLAY_TEXT MSG="Hotend: 150c" # Display info on display + M109 S150 # Heat hotend to 150c + + ## Uncomment for V2.4 (Quad gantry level AKA QGL) + #SET_DISPLAY_TEXT MSG="Leveling" # Display info on display + #STATUS_LEVELING # Set LEDs to leveling-mode + #QUAD_GANTRY_LEVEL # Level the printer via QGL + #G28 Z # Home Z again after QGL + + ## Uncomment for bed mesh (2 of 2 for bed mesh) + #SET_DISPLAY_TEXT MSG="Bed mesh" # Display info on display + #STATUS_MESHING # Set LEDs to bed mesh-mode + #BED_MESH_CALIBRATE # Start the bed mesh (add ADAPTIVE=1) for adaptive bed mesh + + ## Uncomment for Beacon Contact (3 of 4 for beacon contact) + #G28 Z METHOD=CONTACT CALIBRATE=0 # Calibrate z offset only with hot nozzle + + # Heat up the hotend up to target via data from slicer + SET_DISPLAY_TEXT MSG="Hotend: {target_extruder}c" # Display info on display + STATUS_HEATING # Set LEDs to heating-mode + G1 X{x_wait} Y{y_wait} Z15 F9000 # Go to center of the bed + M107 # Turn off partcooling fan + M109 S{target_extruder} # Heat the hotend to set temp + + ## Uncomment for Beacon Contact (4 of 4 for beacon contact) + #SET_GCODE_OFFSET Z=0.06 # Add a little offset for hotend thermal expansion + + # Get ready to print by doing a primeline and updating the LEDs + SET_DISPLAY_TEXT MSG="Printer goes brr" # Display info on display + STATUS_PRINTING # Set LEDs to printing-mode + G0 X{x_wait - 50} Y4 F10000 # Go to starting point + G0 Z0.4 # Raise Z to 0.4 + G91 # Incremental positioning + G1 X100 E20 F1000 # Primeline + G90 # Absolute position \ No newline at end of file