To use our start and end G Code Macro, we are base off LDO voron kit configuration, so some specific fan header may be different. 


NOTE: NO WARRANTY Is provided, this provided as guide, please always double check gcode action. If you have purchased a Voron kit from us, feel free email us with your current printer config 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 or service contractors 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: May 2024, if you running latest Klipper above KAMP is built in, you should able to use without installing the module, if you remove the purge line macro, we suggest setting up KAMP without meshing enabling, but have line or voron purge enabled base 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

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 Started


For 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_END


For 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 Started

For 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_END