====== Print Start Workflows ====== {{tag> articles setup about}} One way (slicer side and [[slicer machine start print gcode]]), or another (Klipper side and [[PRINT_START macro]]), there's certain steps we need to take to start printing the gcode that's slice from an object. There's reasons and rationale for why you'd place certain actions where. ==== Minimal workflow ==== * heat bed * home and position * heat extruder * prime nozzle * reset extruder === More Realistic Workflow === * check that bed's level with SCREWS_TILT_CALCULATE max_deviation check * heat bed * home and position * run adaptive bed mesh * heat extruder * Set the feed speed to 100% * Set the flow rate to 100% * prime nozzle * reset extruder ==== Example Orca Machine Start gcode ====== ; ; Orca Slicer Machine Start G-code by @dshoop v2.2a ; ; PRINT_START ; note the above line is commented out as we may or may not need to call this depending ; on our version of Klipper. If earlier versions of Elegoo's distribution it ; was called automatically. G28; Home, if this fails no point to continue; required before BED_MESH_CALIBRATE M190 S[bed_temperature_initial_layer_single] ;wait for bed to reach temperature M104 S150 ;pre-warm extruder to 150C below typical extrusion temps so as not to ooze, no wait ; BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=1 ADAPTIVE_MARGIN=0 ; M104 S[nozzle_temperature_initial_layer] ;Heat extruder to temp, no wait M220 S100 ;Set the feed speed to 100% M221 S100 ;Set the flow rate to 100% G90 G28 ;home G1 Z10 F300 G1 X67.5 Y0 F6000 G1 Z0 F300 M109 S[nozzle_temperature_initial_layer] ; wait for extruder to reach temp G92 E0 ;Reset Extruder G1 X67.5 Y0 Z0.4 F300 ;Move to start position G1 X167.5 E30 F400 ;Draw the first line G0 Y0.6 F120 G1 X67.5 E60 F400 ;Draw the second line G0 Z0.6 F120 G92 E0 ;Reset Extruder ==== Example PRINT_START macro ==== [gcode_macro PRINT_START] gcode: RESPOND PREFIX="" MSG=">> Klipper PRINT_START Macro <<" M117 Starting Klipper START_PRINT macro M400 ; wait for current moves to finish CLEAR_PAUSE ; clear any pause conditions G28 ; home before SCREWS_TILT_CALCULATE SCREWS_TILT_CALCULATE max_deviation=0.02 ; assume bed's z plane is level within given deviation M105 ;Request temperature reports to be sent to the host as soon as possible RESPOND PREFIX="" MSG=">> PRINT_START Macro complete <<" M117 PRINT_START Macro complete