Version 1: Initial version
Version 2:
Version 3:
Version 4:
Version 5:
Version 6:
Version 7:
Version 8:
Version 9:
Version 10 (11.Nov.2024):
G1 Z2 F400
), just for safety if z-offset is not done beforeWhy 0.6mm nozzle and PETG as filament?
- I installed the new Sovol upgrade nozzle with 0.6mm diameter for even faster prints and more reliability (no clogging). The maximum volumetric flow increased from 15mm3/s to 26mm3/s with PETG! It's possible with Sovol SV08.
Orca slicer can compensate bigger nozzles with quality settings magic (Adaptive layer height button, Smooth button, fuzzy skin, ....), except very fine details.
- Why PETG? I can put my prints in the dish washer at 70°C or use outside without deformation. I use only PETG from Geetech, this never fails. Therefore higher temps in Orca settings.
Therefore these settings are optimized for PETG and 0.6mm nozzle, but it can be adapted for PLA and standard 0.4mm nozzle in Orca / printer.cfg again. See below.
Must be used with optimized printer.cfg and Macro.cfg for LCD display color change and further mods!
Orca Machine start G-Code:
START_PRINT
M400
G91
M83
M109 S[nozzle_temperature_initial_layer]; MOD Wait for slicer extruder temp
M190 S[bed_temperature_initial_layer_single]; MOD Wait for slicer bed temp
G1 Z2 F400
Orca Machine end G-Code SV08
END_PRINT
Speed & Filament Settings:
Quality & Cooling Settings:
Strength & Extruder 1 Settings:
Others & Motion Ability Settings:
You can compare your original code with this new code here to see all changes (paste original code in left column, new code in right column):
https://editor.mergely.com
paste over old code in Orca slicer Device Tab -> Machine -> Macro.cfg (Save & Reboot)
[gcode_macro BEEP]
gcode:
SET_PIN PIN=beeper VALUE=1
G4 P10
SET_PIN PIN=beeper VALUE=0
[gcode_macro mainled_on]
gcode:
SET_PIN PIN=main_led VALUE=1
[gcode_macro mainled_off]
gcode:
SET_PIN PIN=main_led VALUE=0
#--------------------------------------------------------------------#
#--------------------------------------------------------------------#
[gcode_shell_command FACTORY_RESETS]
command: /home/sovol/factory_resets.sh
timeout: 2.
[force_move]
enable_force_move: True
[gcode_macro _global_var]
variable_pause_park:{'x': 0, 'y': 0, 'z': 10, 'e': 1}
variable_cancel_park:{'x': 0, 'y': 350, 'z': 10, 'e': 1}
variable_z_maximum_lifting_distance: 345
variable_pause_resume_travel_speed: 150
variable_bed_mesh_calibrate_target_temp: 75 #65 MOD Higher bed mesh temp for heat soak PLA & PETG
variable_load_filament_extruder_temp: 240 #250 MOD lower temp for PLA & PETG sufficient, avoid oozing
gcode:
[gcode_macro _IDLE_TIMEOUT]
gcode:
{% if printer.print_stats.state == "paused" %}
RESPOND TYPE=echo MSG="No operations in 10min!"
{% else %}
M84
TURN_OFF_HEATERS
{% endif %}
[gcode_macro _ALL_FAN_OFF]
gcode:
M106 S0
M107
[gcode_macro CLEAN_NOZZLE]
gcode:
LCD_WHITE #MOD LCD cleaning color
M117 CLEAN NOZZLE
M104 S200
G4 P2000 #MOD wait
{% if printer.toolhead.homed_axes != "xyz" %}
G28
{% endif %}
G90
#G1 X348 Y0 Z0.3 F9000 # Uncomment no value
M117 PREPARE CLEAN
G91
M109 S200
G1 Z10 F300
G90
M106 S255
G1 E-0.5 F2700
#M104 S130 # Uncomment, useless wasn't waiting for cooling down anyway
M117 CLEANING
G1 X315 Y360 F9000
G1 Z0.2 F300
G1 X352 F4500
G1 Y360 X324
G1 Y360 X345
G1 Y360 X324
G1 Y360 X345
G1 Y360 X324
G1 Y360 X345
G1 Y360 X324
G1 Y360 X345
G1 Y360 X324
G1 Y360 X325
G1 Y356 X324 Z5
G1 Z0.2
G1 Y360 X324
G1 Y357 X326
G1 Y360 X326
G1 Y357 X328
G1 Y360 X330
G1 Y357 X332
G1 Y360 X334
G1 Y357 X336
G1 Y360 X338
G1 Y357 X340
G1 Y360 X324
G1 Y357 X326
G1 Y360 X326
G1 Y357 X328
G1 Y360 X330
G1 Y357 X332
G1 Y360 X334
G1 Y357 X336
G1 Y360 X338
G1 Y357 X340
G1 Y360 X324
G1 Y357 X326
G1 Y360 X326
G1 Y357 X328
G1 Y360 X330
G1 Y357 X332
G1 Y360 X334
G1 Y357 X336
G1 Y360 X338
G1 Y356 X324 Z5 # MOD add another fan blow away
G1 Z0.2 # MOD add another fan blow away
M400 # MOD wait move finished
G1 X315 Y360 F9000 # MOD add additional wipe
G1 X353 Y355 F4500 # MOD add additiomnal wipe
G1 X315 Y360 F9000 # MOD add additional wipe
G1 X353 Y355 F4500 # MOD add additiomnal wipe
M400
G1 E-0.6 F2700 # MOD Add retract
M117 CLEAN FINISHED
#M109 S130 # MOD uncommented
G91
G1 Z10 F300
G90
G1 X348 Y0 Z0.2 F9000 # Avoid clean nozzle leak
G90
#G4 P2000 # MOD Add pause for steppers
#G28 Z0 # MOD no homing after clean
M400 # MOD wait until moves finished
M109 S0 # MOD Stop heating when finished and no other action
M107 # MOD stop fan after clean and nozzle sealing on bed
[gcode_macro _CALIBRATION_ZOFFSET]
gcode:
LCD_YELLOW # MOD LCD calibrate color
M117 CALIBRATE OFFSET
M104 S150 # MOD nozzle priming to melt away hard filament blobs
QUAD_GANTRY_LEVEL
M117 SOAK FOR ZOFFSET
M140 S80 #S65 MOD better heat soak when z-offset calibration
G0 X170 Y170 Z10 F2000 # MOD moving to heat soak location
G4 P50000 #P400 MOD Bed heat soak
CLEAN_NOZZLE
LCD_YELLOW # MOD LCD calibrate color
M117 CALIBRATING Z
G4 P500
Z_OFFSET_CALIBRATION
[delayed_gcode _auto_zoffset]
gcode:
SAVE_VARIABLE VARIABLE=offsetadjust VALUE={'%05.2f' % (0)}
_CALIBRATION_ZOFFSET
M23 /.zoffset_test.gcode
M24
[gcode_macro _Delay_Calibrate]
gcode:
UPDATE_DELAYED_GCODE ID=_auto_zoffset DURATION=1.0
[delayed_gcode TEST_BELT]
initial_duration: 0.3
gcode:
{% set x_freq = printer.save_variables.variables.x_freq|float %}
{% set y_freq = printer.save_variables.variables.y_freq|float %}
{% set show_freq = printer.save_variables.variables.show_freq %}
{% if show_freq == 1 %}
M117 x {x_freq}, y {y_freq}
SAVE_VARIABLE VARIABLE=show_freq VALUE=0
{% endif %}
[gcode_macro QUAD_GANTRY_LEVEL]
rename_existing:QUAD_GANTRY_LEVEL_BASE
gcode:
LCD_YELLOW # MOD LCD calibrate color
M104 S140 # MOD nozzle priming to melt away hard filament blobs
{% set mesh_name = "default" %}
{% set mesh_calibrate_temp = printer['gcode_macro _global_var'].bed_mesh_calibrate_target_temp|int %}
{% set current_target_temp = printer.heater_bed.target|int %}
{action_respond_info("CHECK HEATING!")}
{% if printer.heater_bed.temperature != mesh_calibrate_temp %}
M140 S{mesh_calibrate_temp}
{action_respond_info("BED TARGET TEMPNOT REACHED!")}
{action_respond_info("BED HEATING")}
M140 S{mesh_calibrate_temp} #M190 MOD don't wait for QGL, no benefit, much faster print start
{% endif %}
{% if printer.toolhead.homed_axes|lower != "xyz" %}
G4 P2000 # MOD Add pause for steppers
G28
{% endif %}
LCD_YELLOW # MOD LCD calibrate color
M117 QUAD GANTRYLEVEL
QUAD_GANTRY_LEVEL_BASE
G4 P2000 # MOD Add pause for steppers
G28 Z # MOD Homes Z again after QGL
{% if current_target_temp == 0 %}
M104 S0 # MOD nozzle priming off
M140 S0
{% endif %}
[gcode_macro PROBE_CALIBRATE]
rename_existing:PROBE_CALIBRATE_BASE
gcode:
M104 S150 # MOD nozzle priming to melt away hard filament blobs
{% set current_target_temp = printer.heater_bed.target|int %}
{% set z_offset_calibrate_temp = printer['gcode_macro _global_var'].bed_mesh_calibrate_target_temp|int %}
{action_respond_info("z_offset_calibrate")}
{% if printer.heater_bed.temperature != z_offset_calibrate_temp %}
M140 S{z_offset_calibrate_temp}
{action_respond_info("BED TARGET TEMPNOT REACHED!")}
{action_respond_info("BED HEATING")}
M190 S{z_offset_calibrate_temp}
{% endif %}
LCD_YELLOW
M117 PROBE CALIBRATE
G4 P2000 # MOD Add pause for steppers
G28
PROBE_CALIBRATE_BASE
TESTZ z=-4
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: BED_MESH_CALIBRATE_BASE
gcode:
LCD_YELLOW # MOD LCD calibrate color
M117 BED MESH AREA
M104 S200 # MOD Preheat nozzle
{% set mesh_name = "default" %}
{% set mesh_calibrate_temp = printer['gcode_macro _global_var'].bed_mesh_calibrate_target_temp|int %}
{% set current_target_temp = printer.heater_bed.target|int %}
{action_respond_info("CHECK HEATING!")}
{% if printer.heater_bed.temperature != mesh_calibrate_temp %}
M140 S{mesh_calibrate_temp}
{action_respond_info("BED TARGET TEMP NOT REACHED!")}
{action_respond_info("BED HEATING")}
M190 S{mesh_calibrate_temp}
{% endif %}
{% if printer.toolhead.homed_axes|lower != "xyz" %}
G4 P2000 # MOD Add pause for steppers
G28
{% endif %}
BED_MESH_CLEAR
BED_MESH_CALIBRATE_BASE ADAPTIVE=1
{% if current_target_temp == 0 %}
M140 S0
{% endif %}
[gcode_macro G34]
gcode:
LCD_YELLOW # MOD LCD calibrate color
M117 MANUAL QGL
BED_MESH_CLEAR
G4 P2000 # MOD Add pause for steppers
{% if printer.toolhead.homed_axes|lower != "xyz" %}
G28
{% else %}
G28 Z
{% endif %}
QUAD_GANTRY_LEVEL
G4 P2000 # MOD Add pause for steppers
G28 Z
G0 X175 Y175 Z30 F3600
M117 G34 FINISHED
[delayed_gcode bed_mesh_init]
initial_duration: .01
gcode:
BED_MESH_PROFILE LOAD=default
[delayed_gcode _print_start_wait]
gcode:
{% if printer['gcode_macro START_PRINT'].state == 'Heating'%}
{action_respond_info("PREPARE->HEATING!")}
{% elif printer['gcode_macro START_PRINT'].state == 'Start' %}
{action_respond_info("HEATING->START!")}
{% endif %}
{% if printer['gcode_macro START_PRINT'].execute|lower != 'false' %}
START_PRINT
{% endif %}
[gcode_macro START_PRINT]
description:
variable_state: 'Prepare'
variable_record_extruder_temp:0
variable_max_record_extruder_temp:0
gcode:
{% set mesh_name = "default" %}
{% set mesh_calibrate_temp = printer['gcode_macro _global_var'].bed_mesh_calibrate_target_temp|int %}
{% set extruder_target_temp = printer.extruder.target|int %}
{% set bed_targer_temp = printer.heater_bed.target|int %}
{% set FILE_NAME = printer.print_stats.filename %}
LCD_ORANGE # MOD LCD heating
BEEP # MOD Start signal
M400
CLEAR_PAUSE
G90
{% if state == 'Prepare' %}
{action_respond_info("PREPARE!")}
M117 PREPARE {FILE_NAME}
M104 S140
M140 S{mesh_calibrate_temp}
{% if printer.toolhead.homed_axes|lower != "xyz" %}
G4 P2000 # MOD Add pause for steppers
G28
{% endif %}
{% if printer['filament_switch_sensor filament_sensor'].enable == True and
printer['filament_switch_sensor filament_sensor'].filament_detected != True
%}
M117 NO FILAMENT!
LCD_RED # MOD LCD failure color
{action_respond_info("SENSOR FILAMENT INSERT!")}
CANCEL_PRINT
{% endif %}
{% if printer.quad_gantry_level.applied|lower != 'true' %}
QUAD_GANTRY_LEVEL
{% endif %}
{action_respond_info("CHECK HEATING!")}
M140 S{bed_targer_temp}
M104 S{extruder_target_temp}
{% if printer.heater_bed.temperature < bed_targer_temp %}
M117 PREHEAT {FILE_NAME}
{action_respond_info("BED HEATING")}
M190 S{bed_targer_temp}
{% endif %}
{% if printer.extruder.temperature < extruder_target_temp %}
M117 PREHEAT {FILE_NAME}
{action_respond_info("NOZZLE HEATING")}
M109 S{extruder_target_temp}
{% endif %}
BED_MESH_CALIBRATE ADAPTIVE=1
CLEAN_NOZZLE # MOD add nozzle cleaning
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=state VALUE='"Start"'
UPDATE_DELAYED_GCODE ID=_print_start_wait DURATION=0.5
{% elif state == 'Start' %}
LCD_GREEN
{action_respond_info("START PRINT!")}
M117 {FILE_NAME} # MOD was M117 Printing now!!!, see PREPARE_PRINT
{% endif %}
[gcode_macro END_PRINT]
description:
variable_state: 'normal'
gcode:
{% set z_max = printer['gcode_macro _global_var'].z_maximum_lifting_distance|int %}
{% set e_mintemp = printer.configfile.settings['extruder'].min_extrude_temp %}
M400
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=state VALUE='"Prepare"'
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=record_extruder_temp VALUE=0
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=max_record_extruder_temp VALUE=0
M117 PRINT FINISHED!
G91
{% if printer['filament_switch_sensor filament_sensor'].enable == True and
printer['filament_switch_sensor filament_sensor'].filament_detected == True
%}
{% if (printer.extruder.target != 0 and printer.extruder.temperature >= printer.extruder.target) or
printer.extruder.temperature >= e_mintemp
%}
G1 E-2 F2700
G1 E-2 Z0.2 F2400
{% endif %}
{% endif %}
{% if (printer.gcode_move.position.z + 10) < z_max %}
G1 Z+10 F3000
{% else %}
G1 Z+{(z_max - printer.gcode_move.position.z)} F3000
{% endif %}
G90
G1 X0 Y360 F9000
TURN_OFF_HEATERS
SET_FAN_SPEED FAN=fan1 SPEED=0.7 # MOD Extra nozzle cooling after print
G4 P10000 # MOD Extra nozzle cooling after print
_ALL_FAN_OFF
M84 X Y Z E
M220 S100
M221 S100
LCD_DEFAULT # MOD LCD Print finished - return to default
BEEP # MOD acoustic end signal
CLEAR_PAUSE
{action_respond_info("PRINT FINISHED!")}
[gcode_macro CANCEL_PRINT]
description:
rename_existing: CANCEL_PRINT_BASE
gcode:
{% set x_park = printer['gcode_macro _global_var'].cancel_park.x|float %}
{% set y_park = printer['gcode_macro _global_var'].cancel_park.y|float %}
{% set z_park = printer['gcode_macro _global_var'].cancel_park.z|float %}
{% set z_lift_max = printer['gcode_macro _global_var'].z_maximum_lifting_distance %}
{% set e_restract = printer['gcode_macro _global_var'].cancel_park.e|float %}
{% set e_mintemp = printer.configfile.settings['extruder'].min_extrude_temp %}
CANCEL_PRINT_BASE
M117 CANCEL PRINT!
G91
{% if printer['filament_switch_sensor filament_sensor'].enabled == True and
printer['filament_switch_sensor filament_sensor'].filament_detected == True
%}
{% if (printer.extruder.target != 0 and printer.extruder.temperature >= printer.extruder.target) or
printer.extruder.temperature >= e_mintemp
%}
G1 E-{e_restract} F500
{% else %}
{action_respond_info("NOZZLE NOT HOT")}
{% endif %}
{% endif %}
{%if (printer.gcode_move.position.z + 10) < z_lift_max %}
G1 Z+10 F3000
{% else %}
G1 Z+{(z_lift_max - printer.gcode_move.position.z)} F3000
{% endif %}
G90
G1 X{x_park} Y{y_park} F9000
TURN_OFF_HEATERS
SET_FAN_SPEED FAN=fan1 SPEED=0.7 # MOD Extra nozzle cooling after print
G4 P10000 # MOD Extra nozzle cooling after print
_ALL_FAN_OFF
LCD_RED # MOD LCD cancel color
BEEP # MOD acoustic cancel signal
G4 P500 # MOD Pause
BEEP # MOD acoustic cancel signal
G4 P500 # MOD Pause
BEEP # MOD acoustic cancel signal
G4 P500 # MOD Pause
CLEAR_PAUSE
M84 X Y Z E
M117 READY
{action_respond_info("CANCEL PRINT SUCCESS!")}
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=state VALUE='"Prepare"'
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=record_extruder_temp VALUE=0
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=max_record_extruder_temp VALUE=0
[gcode_macro PAUSE]
rename_existing: PAUSE_BASE
variable_state: 'normal'
gcode:
{% if printer.pause_resume.is_paused == False %}
{% set x_park = printer['gcode_macro _global_var'].pause_park.x|float %}
{% set y_park = printer['gcode_macro _global_var'].pause_park.y|float %}
{% set e_restract = printer['gcode_macro _global_var'].pause_park.e|float %}
{% set z_lift_max = printer['gcode_macro _global_var'].z_maximum_lifting_distance %}
{% set state = params.STATE if 'filament_change' in params.STATE else 'normal' %}
{action_respond_info("PAUSE PRINT!")}
LCD_CYAN
PAUSE_BASE
M117 PAUSE PRINT!
G91
{% if (printer.gcode_move.position.z + 5) < z_lift_max %}
G1 Z+5 F3000
{% else %}
G1 Z+{(z_lift_max - printer.gcode_move.position.z)} F3000
{% endif %}
G90
{% if printer.gcode_move.position.x != x_park and
printer.gcode_move.position.y != y_park
%}
G1 X{x_park} Y{y_park} F{printer["gcode_macro _global_var"].pause_resume_travel_speed * 60}
{% endif %}
M104 S{printer.extruder.target}
{% if state == 'normal' %}
{% if (printer.extruder.temperature + 5 >= printer.extruder.target) and (printer.extruder.temperature >= printer.configfile.settings['extruder'].min_extrude_temp) %}
{% if printer['filament_switch_sensor filament_sensor'].enabled == True and
printer['filament_switch_sensor filament_sensor'].filament_detected == True
%}
G91
G1 E-{e_restract} F300
G90
{% elif printer['filament_switch_sensor filament_sensor'].enabled == True and
printer['filament_switch_sensor filament_sensor'].filament_detected != True %}
G91
G1 E+95 F300
G1 E-10 F1500
G1 E-20 F600
M400
G4 P3000
G1 E-50 F300
G90
{% endif %}
{% endif %}
{% elif state == 'filament_change' %}
{% if (printer.extruder.temperature + 5 >= printer.extruder.target) and (printer.extruder.temperature >= printer.configfile.settings['extruder'].min_extrude_temp) %}
G91
G1 E+25 F300
G1 E-10 F1500
G1 E-20 F600
M400
G4 P3000
G1 E-50 F300
G90
{% endif %}
{% endif %}
{% endif %}
BEEP # MOD acoustic pause signal
[delayed_gcode _resume_wait]
gcode:
{% if printer['gcode_macro RESUME'].execute|lower != 'false' %}
RESUME
{% endif %}
[gcode_macro RESUME]
description: Pause the actual running print
rename_existing: RESUME_BASE
variable_state: 'normal'
gcode:
{% set e_restract = printer['gcode_macro _global_var'].pause_park.e|float %}
{% set extruder_target_temp = printer.extruder.target|int %}
{% set state = params.STATE if 'filament_change' in params.STATE else 'normal' %}
{% if state == 'filament_change' %}
{% if printer["filament_switch_sensor filament_sensor"].enable == True and
printer["filament_switch_sensor filament_sensor"].filament_detected != True
%}
{action_respond_info("SENSOR INSERT FILAMENT!")}
{% else %}
{% if printer.extruder.temperature + 5 >= printer.extruder.target %}
G91
G1 E30 F300
G1 E10 F150
G90
{% else %}
M104 S{extruder_target_temp} # M140 MOD Sovol bug fixed
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{extruder_target_temp} # M190 MOD Sovol bug fixed
G91
G1 E30 F300
G1 E10 F150
G90
{% endif %}
{action_respond_info("PRINT RESUMING!")}
RESUME_BASE
{% endif %}
{% elif state == 'normal' %}
{% if printer['filament_switch_sensor filament_sensor'].enable != True and
printer['filament_switch_sensor filament_sensor'].filament_detected != True
%}
{action_respond_info("SENSOR INSERT FILAMENT!")}
{% else %}
{action_respond_info("PRINT RESUMING!")}
G91
G1 E{e_restract} F300
G90
LCD_GREEN
M117 PRINTING RESUME
RESUME_BASE
{% endif %}
{% endif %}
[gcode_macro LOAD_FILAMENT]
gcode:
LCD_PURPLE # MOD LCD Load/Unload color
{% set extruder_temp = printer['gcode_macro _global_var'].load_filament_extruder_temp|int %}
{% set current_target_temp = printer.extruder.target|int %}
{% if printer.print_stats.state != "printing" %}
{% if printer.print_stats.state != "paused" %}
M104 S{extruder_temp}
M117 NOZZLE HEATING
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{extruder_temp}
{% else %}
{% if printer.extruder.target == 0 %}
M104 S{extruder_temp}
M117 NOZZLE HEATING
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{extruder_temp}
{% else %}
M104 S{printer.extruder.target}
M117 NOZZLE HEATING
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{printer.extruder.target}
{% endif %}
{% endif %}
M117 EXTRUDING
G91
G1 E45 F300
G1 E30 F150
G90
M400
M117 EXTRUDE FINISH
M400
{% if current_target_temp == 0 or printer.print_stats.state != "paused"%}
M104 S0
{% endif %}
{% else %}
{action_respond_info("DON'T LOAD FILAMENT!")}
{% endif %}
[gcode_macro UNLOAD_FILAMENT]
gcode:
LCD_PURPLE # MOD LCD Load/Unload color
{% set extruder_temp = printer['gcode_macro _global_var'].load_filament_extruder_temp|int %}
{% set current_target_temp = printer.extruder.target|int %}
{% if printer.print_stats.state != "printing" %}
{% if printer.print_stats.state != "paused" %}
M104 S{extruder_temp}
M117 NOZZLE HEATING
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{extruder_temp}
{% else %}
{% if printer.extruder.target == 0 %}
M104 S{extruder_temp}
M117 NOZZLE HEATING
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{extruder_temp}
{% else %}
M104 S{printer.extruder.target}
M117 NOZZLE HEATING
{action_respond_info("NOZZLE NOT HOT!")}
{action_respond_info("NOZZLE HEATING")}
M109 S{printer.extruder.target}
{% endif %}
{% endif %}
M117 RETRACTING
G91
G1 E+25 F300
G1 E-10 F1500
G1 E-20 F600
M400
G4 P3000
G1 E-50 F300
G90
M400
M117 RETRACT FINISH
BEEP # MOD acoustic unload finished signal
M400
{% if current_target_temp == 0 or printer.print_stats.state != "paused"%}
M104 S0
{% endif %}
{% else %}
{action_respond_info("DON'T UNLOAD FILAMENT!")}
{% endif %}
[gcode_macro M109]
rename_existing: M99109
gcode:
{% set s = params.S|float %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s-1} MAXIMUM={s+1}
{% endif %}
[gcode_macro M190]
rename_existing: M99190
gcode:
{% set s = params.S|float %}
M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-1} MAXIMUM={s+1}
{% endif %}
[gcode_macro M106]
gcode:
{% set fan = 'fan' + (params.P|int if params.P is defined else 0)|string %}
{% set speed = (params.S|float / 255 if params.S is defined else 1.0) %}
{% if fan == 'fan3'%}
SET_FAN_SPEED FAN={fan} SPEED={speed}
{% else %}
SET_FAN_SPEED FAN={'fan0'} SPEED={speed}
SET_FAN_SPEED FAN={'fan1'} SPEED={speed}
{% endif %}
[gcode_macro M107]
gcode:
{% set fan = 'fan' + (params.P|int if params.P is defined else 0)|string %}
{% if fan == 'fan3'%}
SET_FAN_SPEED FAN={fan} SPEED=0
{% else %}
SET_FAN_SPEED FAN={'fan0'} SPEED=0
SET_FAN_SPEED FAN={'fan1'} SPEED=0
{% endif %}
[gcode_macro M600]
gcode:
LCD_CYAN
PAUSE STATE=filament_change
#-----------MOD START - LED MACROS TO SET LCD COLORS------------------#
[gcode_macro LCD_DEFAULT]
gcode:
SET_LED LED=Screen_Colour RED=0.5 GREEN=0.4 BLUE=0.7 INDEX=1 TRANSMIT=0
SET_LED LED=Screen_Colour RED=0.5 GREEN=0.4 BLUE=0.7 INDEX=2 TRANSMIT=0
SET_LED LED=Screen_Colour RED=0.5 GREEN=0.4 BLUE=0.7 INDEX=3
[gcode_macro LCD_RED]
gcode:
SET_LED LED=Screen_Colour RED=1 GREEN=0 BLUE=0 TRANSMIT=1
[gcode_macro LCD_ORANGE]
gcode:
SET_LED LED=Screen_Colour RED=1 GREEN=0.1 BLUE=0 TRANSMIT=1
[gcode_macro LCD_GREEN]
gcode:
SET_LED LED=Screen_Colour RED=0 GREEN=1 BLUE=0 TRANSMIT=1
[gcode_macro LCD_BLUE]
gcode:
SET_LED LED=Screen_Colour RED=0 GREEN=0 BLUE=1 TRANSMIT=1
[gcode_macro LCD_PURPLE]
gcode:
SET_LED LED=Screen_Colour RED=1 GREEN=0 BLUE=1 TRANSMIT=1
[gcode_macro LCD_CYAN]
gcode:
SET_LED LED=Screen_Colour RED=0 GREEN=1 BLUE=1 TRANSMIT=1
[gcode_macro LCD_YELLOW]
gcode:
SET_LED LED=Screen_Colour RED=1 GREEN=0.9 BLUE=0.05 TRANSMIT=1
[gcode_macro LCD_BLACK]
gcode:
SET_LED LED=Screen_Colour RED=0 GREEN=0 BLUE=0 TRANSMIT=1
[gcode_macro LCD_WHITE]
gcode:
SET_LED LED=Screen_Colour RED=1 GREEN=1 BLUE=1 TRANSMIT=1
#-----------MOD END - LED MACROS TO SET LCD COLORS------------------#
paste over old code in Orca Device Tab -> Machine -> printer.cfg (Save & Reboot)
ATTENTION:
[include mainsail.cfg]
[include timelapse.cfg]
[include get_ip.cfg]
[include Macro.cfg]
[include moonraker_obico_macros.cfg]
[mcu] # NEED YOUR SERIAL PASTED HERE
serial: PASTE SERIAL HERE!
restart_method: command
[mcu extra_mcu] # NEED YOUR SERIAL PASTED HERE
serial: PASTE SERIAL HERE!
restart_method: command
[adxl345]
cs_pin:extra_mcu:PB12
[exclude_object]
[resonance_tester]
accel_chip: adxl345
probe_points:
175, 175, 30 # an example175 Y175 Z30
accel_per_hz:50
min_freq:1
max_freq:100
max_smoothing:0.2
hz_per_sec:0.5
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp:0
max_temp:100
[temperature_sensor Host_temp]
sensor_type: temperature_host
min_temp: 0
max_temp: 110
[temperature_sensor Toolhead_Temp] # MOD uncomment block (#) for Chamberfan
sensor_type: temperature_mcu
sensor_mcu: extra_mcu
[virtual_sdcard]
path:/home/sovol/printer_data/gcodes/
[pause_resume]
[printer]
kinematics: corexy
max_velocity: 700
max_accel: 40000
max_accel_to_decel: 10000
max_z_velocity: 20
max_z_accel: 500
square_corner_velocity: 5.0
[input_shaper]
damping_ratio_x: 0.001
damping_ratio_y: 0.001
#shaper_type_x = mzv
#shaper_freq_x = 35
#shaper_type_y = mzv
#shaper_freq_y = 35
[probe]
pin: extra_mcu:PB6
x_offset: -17
y_offset: 10
#z_offset : 0
speed: 10.0 #15 MOD more accuracy
speed: 5.0
samples: 4 #2 MOD more accuracy
sample_retract_dist: 3.0 #2.0 MOD more accuracy
lift_speed: 35 #50 MOD more accuracy
samples_result: median #average MOD more accuracy
samples_tolerance: 0.012
samples_tolerance_retries: 5 #2 MOD more accuracy
[probe_pressure]
pin: ^!PE12
x_offset: 0
y_offset: 0
z_offset : 0
speed: 1.0
[homing_override]
gcode:
{% if not 'Z' in params and not 'Y' in params and 'X' in params %}
G28 X
G0 X348 F1200
{% elif not 'Z' in params and not 'X' in params and 'Y' in params %}
G28 Y
G0 Y360 F1200
{% elif not 'Z' in params and 'X' in params and 'Y' in params %}
G28 Y
G0 Y360 F1200
G4 P2000
G28 X
G0 X348 F1200
{% elif 'Z' in params and not 'X' in params and not 'Y' in params %}
G90
G0 X191 Y165 F3600
G28 Z
G0 Z10 F600
{% else %}
G90
G0 Z5 F300
G28 Y
G0 Y360 F1200
G4 P2000
G28 X
G0 X348 F1200
G90
G0 X191 Y165 F3600
G28 Z
G0 Z10 F600
{% endif %}
axes: xyz
set_position_z: 0
[bed_mesh]
speed: 350 #500 MOD slower speed when leveling
horizontal_move_z: 5
mesh_min: 10,10
mesh_max: 333,340
probe_count: 9,9
algorithm: bicubic
bicubic_tension: 0.4
split_delta_z: 0.012 #0.016 MOD lower move split trigger
mesh_pps:3,3
adaptive_margin: 5
fade_start: 0
fade_end: 10
fade_target: 0
[quad_gantry_level]
gantry_corners:
-60,-10
410,420
points:
36,10
36,320
346,320
346,10
speed: 350 #400 MOD slower speed for accuracy
horizontal_move_z: 5 #10 MOD lower z-lift
retry_tolerance: 0.025 #0.05 MOD more accuracy
retries: 5
max_adjust: 15 #30
[z_offset_calibration]
center_xy_position:191,165
endstop_xy_position:289,361
z_hop: 10
z_hop_speed: 15
[stepper_x]
step_pin: PE2
dir_pin: !PE0
enable_pin: !PE3
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200
endstop_pin: tmc2209_stepper_x: virtual_endstop
position_min: 0
position_endstop: 355
position_max: 355
homing_speed: 30
homing_retract_dist: 0
homing_positive_dir: True
#-----------------------------------------------------------
[tmc2209 stepper_x]
uart_pin: PE1
interpolate: True
run_current: 1.4 # MOD lower run current
# hold_current: 1.5 # MOD not required when sensorless homing
sense_resistor: 0.150
stealthchop_threshold: 0
uart_address:3
driver_sgthrs: 73 #65 MOD soft sensorless homing adjust
diag_pin: PE15
[stepper_y]
step_pin: PB8
dir_pin: !PB6
enable_pin: !PB9
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200
endstop_pin: tmc2209_stepper_y: virtual_endstop
position_min: 0
position_endstop: 364
position_max: 364
homing_speed: 30
homing_retract_dist: 0
homing_positive_dir: true
#-----------------------------------------------------------
[tmc2209 stepper_y]
uart_pin: PB7
interpolate: True
run_current: 1.4 # MOD lower run current
#hold_current: 1.5 # MOD not required when sensorless homing
sense_resistor: 0.150
stealthchop_threshold: 0
uart_address:3
driver_sgthrs: 75 #65 MOD soft sensorless homing adjust
diag_pin: PE13
[stepper_z] #motherboard:Z3
step_pin:PC0
dir_pin:PE5
enable_pin:!PC1
rotation_distance: 40
gear_ratio: 80:12
microsteps: 16
endstop_pin: probe:z_virtual_endstop
position_max: 347
position_min: -5
#position_endstop: 0
homing_speed: 10.0 #15 MOD slower speed, more accuracy
homing_retract_dist: 5.0
homing_retract_speed: 15.0
second_homing_speed: 5.0 #10 MOD slower speed, more accuracy
[tmc2209 stepper_z]
uart_pin: PE6
interpolate: true
run_current: 0.54 #0.58 MOD avoid Error 8
hold_current: 0.54 #0.58 MOD Z motor prefer to not specify a hold_current?
sense_resistor: 0.150
stealthchop_threshold: 999999
uart_address:3
[stepper_z1] ##motherboard:Z1
step_pin:PD3
dir_pin:!PD1
enable_pin:!PD4
rotation_distance: 40
gear_ratio: 80:12
microsteps: 16
[tmc2209 stepper_z1]
uart_pin:PD2
interpolate: true
run_current: 0.54 #0.58 MOD avoid Error 8
hold_current: 0.54 #0.58 MOD Z motor prefer to not specify a hold_current?
sense_resistor: 0.150
stealthchop_threshold: 999999
uart_address:3
[stepper_z2] ##motherboard:Z2
step_pin:PD7
dir_pin:PD5
enable_pin:!PB5
rotation_distance: 40
gear_ratio: 80:12
microsteps: 16
[tmc2209 stepper_z2]
uart_pin:PD6
interpolate: true
run_current: 0.54 #0.58 MOD avoid Error 8
hold_current: 0.54 #0.58 MOD Z motor prefer to not specify a hold_current?
sense_resistor: 0.150
stealthchop_threshold: 999999
uart_address:3
[stepper_z3] ##motherboard:Z4
step_pin:PD11
dir_pin:!PD9
enable_pin:!PD12
rotation_distance: 40
gear_ratio: 80:12
microsteps: 16
[tmc2209 stepper_z3]
uart_pin:PD10
interpolate: true
run_current: 0.54 #0.58 MOD avoid Error 8
hold_current: 0.54 #0.58 MOD Z motor prefer to not specify a hold_current?
sense_resistor: 0.150
uart_address:3
stealthchop_threshold: 999999
[thermistor my_thermistor_e]
temperature1:25
resistance1:110000
temperature2:100
resistance2:7008
temperature3:220
resistance3:435
[extruder]
step_pin: extra_mcu:PA8
dir_pin: extra_mcu:PB8
enable_pin:!extra_mcu: PB11
rotation_distance: 6.4 #6.5 MOD extruder higher speed calibration
microsteps: 16
full_steps_per_rotation: 200
nozzle_diameter: 0.600 # 0.400 MOD for 0.6mm nozzle install
filament_diameter: 1.75
max_extrude_only_distance: 150
heater_pin:extra_mcu:PB9
sensor_type:my_thermistor_e
pullup_resistor: 11500
sensor_pin: extra_mcu:PA5
min_temp: 5
max_temp: 305
max_power: 1.0
min_extrude_temp: 150
control : pid
pid_kp : 33.838
pid_ki : 5.223
pid_kd : 47.752
pressure_advance: 0.025
pressure_advance_smooth_time: 0.035
[tmc2209 extruder]
uart_pin: extra_mcu:PB10
interpolate: True
run_current: 0.8
hold_current: 0.8
uart_address:3
sense_resistor: 0.150
[verify_heater extruder]
max_error: 120
check_gain_time:30
hysteresis: 5
heating_gain: 2
[filament_switch_sensor filament_sensor]
pause_on_runout: True
event_delay: 3.0
pause_delay: 0.5
switch_pin: PE9
[thermistor my_thermistor]
temperature1:25
resistance1:100000
temperature2:50
resistance2:18085.4
temperature3:100
resistance3:5362.6
[heater_bed]
heater_pin:PA0
sensor_type: my_thermistor
sensor_pin: PC5
max_power: 1.0
min_temp: 5
max_temp: 105
control : pid
pid_kp : 73.571
pid_ki : 1.820
pid_kd : 783.849
[verify_heater heater_bed]
max_error: 120
check_gain_time:40
hysteresis: 5
heating_gain: 2
[fan_generic fan0] # back model cooling fan
pin: extra_mcu:PA7
max_power: 1.0
[fan_generic fan1] # front model cooling fan
pin: extra_mcu:PB1
max_power: 1.0
[temperature_fan CPUfan] # MOD mainboard fan control
pin: PA1
kick_start_time: 0.5
max_power: 1.0
min_temp: 0
max_temp: 90
cycle_time: 0.010
hardware_pwm: true
target_temp: 57
sensor_type: temperature_host
max_speed: 1.0
min_speed: 0.30
off_below: 0.32
control: pid
pid_Kp: 2
pid_Ki: .5
pid_Kd: 0.25
pid_deriv_time: 5.0
#[temperature_fan Chamberfan] # MOD remove # in block for Chamberfan control
#pin: PA2
#kick_start_time: 0.5
#max_power: 1.0
#min_temp: 0
#max_temp: 90
#cycle_time: 0.010
#hardware_pwm: true
#target_temp: 65
#sensor_type: temperature_mcu
#sensor_mcu: extra_mcu
#max_speed: 1.0
#min_speed: 0.30
#off_below: 0.32
#control: pid
#pid_Kp: 2
#pid_Ki: .5
#pid_Kd: 0.25
#pid_deriv_time: 5.0
[fan_generic fan3] # exhaust fan MOD uncomment (#) block for Chamberfan
pin: PA2
max_power: 1.0
[heater_fan hotend_fan]
pin: extra_mcu:PA6
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 45
tachometer_pin:extra_mcu:PA1
tachometer_ppr: 1
tachometer_poll_interval: 0.0013
[board_pins]
aliases:
# EXP1 header
EXP1_1=PA8, EXP1_2=PC9,
EXP1_3=PA10, EXP1_4=PA9,
EXP1_5=PC11, EXP1_6=PC10,
EXP1_7=PD8, EXP1_8=PC12,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_2=PB13,
EXP2_3=PC7, EXP2_4=PB12,
EXP2_5=PC6, EXP2_6=PB15,
EXP2_7=PC8, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=<5V>
[display]
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
contrast: 63
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP2_6
spi_software_sclk_pin: EXP2_2
[output_pin beeper]
pin: EXP1_1
pwm: False
value: 0
[neopixel Screen_Colour]
pin: EXP1_6
chain_count: 3
color_order: RGB
initial_RED: 0.5
initial_GREEN: 0.4
initial_BLUE: 0.7
[gcode_arcs]
resolution: 1.0
[output_pin main_led]
pin:PA3
pwm: 1
value:1
cycle_time: 5
[idle_timeout]
gcode: _IDLE_TIMEOUT
timeout: 600
[save_variables]
filename =/home/sovol/printer_data/config/saved_variables.cfg
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [probe]
#*# z_offset = 1.0
Check if your serial numbers are adopted in printer.cfg as described above!
STEP 4: DO CALIBRATIONS:
The calibration settings will be stored in modified printer.cfg (section SAVE_CONFIG)
==============================
Use your own 0.4mm Orca presets except modify Orca machine G-Code and set nozzle to 0.4mm.
In Addition change this line in printer cfg:
nozzle_diameter: 0.600 # 0.400 MOD for 0.6mm nozzle install
to
nozzle_diameter: 0.400
=============================
The author marked this model as their own original creation.