Sovol SV08 - Optimized Macro.cfg & printer.cfg / Orca G-Code & Settings (WIP Version 10)

Sovol SV08 is an incredible machine, but there is room for optimisation for Orca slicer preset and Klipper configuration
43
164
0
1896
updated November 15, 2024

Description

PDF

WIP Version 10: Sovol SV08 - Optimized G-Code / Macro.cfg / printer.cfg and highspeed settings PETG

 

 

OPTIMIZATIONS (firmware 2.3.3 required!):

Version 1: Initial version

  • 0.6mm nozzle setting in printer.cfg and Orca (see 0.4mm config change on the bottom of this article)
  • Nozzle priming temp before Axis Homing and Leveling - no cold, hard filament hanging from the nozzle blob ruining bed mesh anymore.
  • Higher PETG volumetric speed settings (26mm3/s instead 15mm3/s) for 0.6mm nozzle setting in Orca
  • High PETG speed settings in Orca like PLA (0.6mm nozzle can do easy)
  • Bug fixed Sovol M104 M109 mismatch in Macro RESUME
  • LCD Display Status Colors (Orange Preheating; Yellow Calibrations; Green Printing No Error; Red Cancel Print/Abort/Pause;….)
  • Higher Leveling / Z-Offset temps to make “taco style” bed temp-soak quick for better calibration values. Nozzle preheating when leveling to avoid hard filament blobs hitting the bed, they will melt away.
  • Small fixes and adjustments here and there
  • Higher probing accouracy in printer.cfg (median instead average setting, sample count increases,...)
  • Soft sensorless homing adjust (driver_sgthrs: 72# was 65). No more forced crashing into X and Y axis when homing

Version 2:

  • All LCD Status Messages UPPERCASE
  • Add Object Name to LCD Display message during print (no “Printing now!!!” non-information message anymore)
  • PETG stringing fix in Orca slicer profile (Disable Z-hop, retraction settings adjusted). No stringing anymore, even when printing extreme test object.

Version 3:

  • Macro.cfg: Add Object Name to LCD Display message when Preparing Print (PREPARE "Objectname")
  • Machine Start G-CODE: Add PREPARE_PRINT for Object name in LCD display

Version 4:

  • No separate purge line anymore! Added double line skirt around the object. Easy removable from object with only slight attachment. The new “purge skirt” will be removed with object after print (like BambuLab printers). No more forgetting to remove anything from bed before next print:
  • Bug fix: According to Klipper documentation - When using sensorless homing on CoreXY, make sure there is no hold_current configured for either stepper. on which the SV08 has configured a value of 1.5 in firmware. Uncommented: hold_current: 1.5 in printer.cfg for stepper X and Y. This needs further investigation.
  • Annoying mainboard fan (pin: PA1) in the printers base shuts off when machine is idle / cool (<57°C). Will ramp up slowly from 33% rpm speed and shut down again when mainboard is cool. See screenshot below (CPUfan).
    It even works with mainboard fan mods, e.g. 24V 120mm Sunon MagLev fan. Use attached riser feet for bigger distance of base plate to the ground for fan mods.
  • Optional: Added implementation of chamber fan temperature control for original Sovol SV08 enclosure with fan (pin: PA2). This will read the Toolhead temperature in the printhead MCU and start spinning when case temperature is high (above 65°C). See screenshot below (Chamberfan). This can avoid heat creep above the heatbrake if chamber temp gets high (doors closed). Attention: Needs to be uncommented / enabled in printer.cfg, code already there for Sovol SV08 with Enclosure & additional case fan. See printer.cfg and search for all Chamberfan entries.

Version 5:

  • Higher Bed temps for PETG in Orca. 70°C minimum required for support structures.

Version 6:

  • ZOffset calibration: Add nozzle priming to 150°C and yellow calibration color to LCD display.
  • Added hint to description to change serial numbers in printer.cfg to your printer serials.

Version 7:

  • Z stepper motors lowered run_current and hold_current to 0.54, left hold_current enabled for Z to reduce motor heat (Avoid Error 8)
  • Raised driver_sgthrs to 75 for Y-axis for even softer homing 
  • Raised driver_sgthrs to 73 for X-axis for even softer homing 
  • Recuced run_current to 1.4 for X and Y steppers to leave hold_current enabled (additional heat) but required for sensorless homing
  • Adjustments to bed_mesh, probe and quad_gantry_level settings (more precision)
  • removed error message at beginning in log
  • Added LCD status for QUAD_GANTRY_LEVEL, G34,… when started from LCD screen
  • Add 2 sec pause before G28 (homing) to avoid TMC drivers internal stall flag

Version 8: 

  • Macro.cfg add nozzle cleaning white LCD color and status messages
  • Macro.cfg add short heat soak for z-offset calibration
  • Macro.cfg: Nozzle heat priming for manual PROBE_CALIBRATE. Do not use this if you don't know what to do. You can ruin your bed!
  • Macro.cfg: Add 10 sec pause before _ALL_FAN_OFF to cool nozzle after print finished/canceled

Version 9:

  • Optimized Start and End G-Code in Orca Slicer. Moved most commands to START_PRINT Macro.cfg
  • Optimized “Prepare” and “Start” routine of a print: 
  • Bed preheat is done while Quad Gantry Leveling. There is no difference when QGL cold or hot. Heating is done as parallel process to save time
  • Clean nozzle added to Start-Routine after Adaptive Bed Mesh
  • Optimized Clean Nozzle process (additional wipes, fan blow, retract…)
  • Cleaned nozzle exit is sealed on the PEI-plate after cleaning to avoid oozing until nozzle heated to initial layer temperature
  • No more blow when starting a print. Always a 100% clean bed after removing printed object with integrated purge-line.
  • Optimized code (PREPARE and START Macro merged
  • Add acousitic BEEP Codes for Cancel Print, Unload finished, Pause Print ready

Version 10 (11.Nov.2024):

  • Add raise nozzle in Orca Start Print G-Code (G1 Z2 F400), just for safety if z-offset is not done before
  • No further improvements planned, except new feature requests in comments


ATTENTION:

  • Stock Sovol hardware required (with 0.6mm upgrade nozzle with screw)
    For standard 0.4mm nozzle code adjustments needed. See below.
    Else all original hardware.
    If you are using a 12V fan replacement for the mainboard with a buck converter, then be sure the fan spins up again after shutting off when temperature is low / idle.
  • Stock Sovol SV08 Firmware 2.3.3, this might not work with older and newer firmware in the future!
  • You will have to use all files / settings together for optimal function (Orca profile settings / Orca machine G-Code / printer.cfg (Mainsail Klipper) / Macro.cfg (Mainsail Klipper)
  • You will have to paste your serial number to the config.cfg file! See printer.cfg section! Do not forget!
  • Do not implement if you don't know what you are doing (knowledge about parameters in Klipper configs, how to troubleshoot,…. required)
  • Make backups of your current settings / configs!
  • Use at own risk

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

 

STEP 1: ORCA Settings G-Code:

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

 

STEP 2: ORCA profile settings (higher speed, 0,6mm nozzle, PETG temps, tweaks for cleaner prints,…):

 

Speed & Filament Settings:

Quality & Cooling Settings:

Strength & Extruder 1 Settings:

Others & Motion Ability Settings: 

 

 

STEP 3: New code for Klipper  (Macro.cfg & printer.cfg)

Attention: Be sure to have backups of original Macro.cfg and printer.cfg with your serial numbers!

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

Macro.cfg

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

 

printer.cfg

paste over old code in Orca Device Tab -> Machine -> printer.cfg (Save & Reboot)

ATTENTION:

  • YOU MUST PASTE YOUR PRINTER/KLIPPER SERIAL IN FOLLOWING SECTIONS:
    [mcu] # NEED YOUR SERIAL PASTED HERE
    serial: PASTE SERIAL HERE!

    [mcu extra_mcu] # NEED YOUR SERIAL PASTED HERE
    serial:  PASTE SERIAL HERE!
     
  • IF YOU WANT TO KEEP YOUR Z-OFFSET AND BED MESH VALUES THEN LEAVE YOUR ORIGINAL LAST PART IN GREEN LETTERS STARTING WITH SAVE_CONFIG 
[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: 

  • Reboot machine
  • Calibrate Z-offset (Menu in LCD display)
  • Quad Gantry Level  (Menu in LCD display)
  • Bed Mesh (Menu in LCD display)
  • Auto-Calibrate (= Input Shaping Menu in LCD display)
  • PID tuning….

The calibration settings will be stored in modified printer.cfg (section SAVE_CONFIG)

STEP 5: Test printer, e.g. calibrationline, Extreme Test_UPDATED….

 

==============================

OPTIONAL for 0.4mm nozzle:

(It is not recommended to print PETG with standard non-upgrade Sovol nozzle without the nozzle screw! It may damage your bed and toolhead!)

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

=============================

STEP 6: Please give feedback and comment for more optimization.

Tags



Model origin

The author marked this model as their own original creation.

License