Voron Start G-Code/End G Code Example

Modified on Mon, 2 Sep at 4:41 PM

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

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article