To use our start and end G-code macros, please note that they are based on the LDO Voron kit configuration.
NOTE: NO WARRANTY is provided. This is provided as a guide; please always double-check G-code actions. If you have purchased a Voron kit from us, feel free to email us with your current printer configuration file, and we can offer setup guidance. If you have further questions, please contact support. We can only offer support to our existing customers via email, while service contractor customers can reach out via phone.
Note: Kamp should be installed and working, [Current Below config is tested on https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging/tree/v0.1.2] You may need adjust KAMP setting to be suitable for your setup.
https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging
Note: As of May 2024, if you are running the latest Klipper version with KAMP built-in, you should be able to use it without installing the module. However, if you wish to use the purge line macro, we suggest setting up KAMP without enabling meshing, but enabling either the line or Voron purge based on your preference.
Super Slicer Start Gcode Passthrough [Add to Start gcode in your slicer]
PRINT_START HOTEND={first_layer_temperature[initial_extruder] + extruder_temperature_offset[initial_extruder]} BED=[first_layer_bed_temperature] CHAMBER=[chamber_temperature]Prusa Slicer Start Gcode Passthrough [Due to Prusa Slicer 2.6 Limitation, Chamber temperature cannot be pushed]
PRINT_START HOTEND=[first_layer_temperature] BED=[first_layer_bed_temperature]
Bambu/Orca Slicer Start Gcode Passthrough[Add to Start gcode in your slicer]
PRINT_START HOTEND=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single] Chamber=[chamber_temperature]
If you wish to use secondary bed thermeristor to wait for bed to heat soak example, we use negative 10c offset to reduce the heat heat soak time, but if you wish you can always remove offset of 10c
Orca Slicer
TEMPERATURE_WAIT SENSOR="temperature_sensor bed_temp_2" MINIMUM={first_layer_bed_temperature[0]-10}For 2.4 [Print Start]
[gcode_macro PRINT_START]
gcode:
{% set BED_TEMP = params.BED|default(0)|float %}
{% set CHAMBER_TEMP = params.CHAMBER|default(0)|float %}
{% set HOTEND = params.HOTEND|default(220)|float %}
CLEAR_PAUSE
G32 ;Home
G90
M117 Heating bed
M190 S{params.BED}
M117 Preheating nozzle
M109 S160
G1 Z10 F900
G1 Y150 X150 F18000
M117 Wait for Chamber Temperature
TEMPERATURE_WAIT SENSOR="temperature_sensor chamber_temp" MINIMUM={CHAMBER_TEMP} ; wait for extruder temp
G28 Z
M117 Measuring mesh
## BED_MESH_PROFILE LOAD=default
BED_MESH_CLEAR
BED_MESH_CALIBRATE
M117 Complete
M117 Preheating nozzle to temperature
M109 S{params.HOTEND}
G28 Z
M117 Purge
LINE_PURGE
G90 ; Absolute coordinates.
M83 ; Relative extruder mode.
G92 E0
M117 Print StartedFor 2.4 [Print End]
[gcode_macro PRINT_END]
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
# safe anti-stringing move coords
{% set th = printer.toolhead %}
{% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %}
{% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %}
{% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %}
SAVE_GCODE_STATE NAME=STATE_PRINT_END
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-2 F1800 ; retract filament
TURN_OFF_HEATERS
G90 ; absolute positioning
G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing
G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 2} F3600 ; park nozzle at rear
M107 ; turn off fan
BED_MESH_CLEAR
RESTORE_GCODE_STATE NAME=STATE_PRINT_ENDFor Trident Voron [Print Start]
[gcode_macro PRINT_START]
gcode:
{% set BED_TEMP = params.BED|default(0)|float %}
{% set CHAMBER_TEMP = params.CHAMBER|default(0)|float %}
{% set HOTEND = params.HOTEND|default(220)|float %}
CLEAR_PAUSE
G28 ;Home
G90
Z_TILT_ADJUST
M117 Heating bed
M190 S{params.BED}
M117 Preheating nozzle
M109 S160
G1 Z10 F900
G1 Y150 X150 F18000
M117 Wait for Chamber Temperature
TEMPERATURE_WAIT SENSOR="temperature_sensor chamber_temp" MINIMUM={CHAMBER_TEMP} ; wait for extruder temp
G28 Z
M117 Measuring mesh
## BED_MESH_PROFILE LOAD=default
BED_MESH_CLEAR
BED_MESH_CALIBRATE
M117 Complete
M117 Preheating nozzle to temperature
M109 S{params.HOTEND}
G28 Z
M117 Purge
LINE_PURGE
G90 ; Absolute coordinates.
M83 ; Relative extruder mode.
G92 E0
M117 Print StartedFor Trident Voron [Print End]
[gcode_macro PRINT_END]
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
# safe anti-stringing move coords
{% set th = printer.toolhead %}
{% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %}
{% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %}
{% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %}
SAVE_GCODE_STATE NAME=STATE_PRINT_END
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-2 F1800 ; retract filament
TURN_OFF_HEATERS
G90 ; absolute positioning
G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing
G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 2} F3600 ; park nozzle at rear
M107 ; turn off fan
BED_MESH_CLEAR
RESTORE_GCODE_STATE NAME=STATE_PRINT_ENDWas this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article