From 6e378941347ce1fb9b8b6abfbf234187609d738c Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 1 Dec 2023 13:54:36 -0500 Subject: [PATCH 01/39] Adjust config bundles: add SV07. --- ...usaSlicer_config_bundle-SV06-SV07-All.ini} | 560 +++++++++++++++++- ...perSlicer_config_bundle-SV06-SV07-All.ini} | 490 +++++++++++---- 2 files changed, 937 insertions(+), 113 deletions(-) rename misc/{PrusaSlicer_config_bundle-SV06-Both.ini => PrusaSlicer_config_bundle-SV06-SV07-All.ini} (83%) rename misc/{SuperSlicer_config_bundle-SV06-Both.ini => SuperSlicer_config_bundle-SV06-SV07-All.ini} (90%) diff --git a/misc/PrusaSlicer_config_bundle-SV06-Both.ini b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini similarity index 83% rename from misc/PrusaSlicer_config_bundle-SV06-Both.ini rename to misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini index ce24ab9..567f20f 100644 --- a/misc/PrusaSlicer_config_bundle-SV06-Both.ini +++ b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-11-23 at 18:53:35 UTC +# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-12-01 at 18:05:53 UTC [print:0.20mm QUALITY SV06 Ellis] avoid_crossing_curled_overhangs = 0 @@ -708,6 +708,183 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:_Ellis_Decorative_Standard_24mm3_CoreXY-Speeds] +avoid_crossing_curled_overhangs = 0 +avoid_crossing_perimeters = 0 +avoid_crossing_perimeters_max_detour = 0 +bottom_fill_pattern = monotoniclines +bottom_solid_layers = 3 +bottom_solid_min_thickness = 0.6 +bridge_acceleration = 5000 +bridge_angle = 0 +bridge_flow_ratio = 0.85 +bridge_speed = 140 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +compatible_printers = +compatible_printers_condition = +complete_objects = 0 +default_acceleration = 4000 +dont_support_bridges = 1 +draft_shield = disabled +elefant_foot_compensation = 0 +enable_dynamic_overhang_speeds = 0 +external_perimeter_acceleration = 1000 +external_perimeter_extrusion_width = 0.4 +external_perimeter_speed = 80 +external_perimeters_first = 0 +extra_perimeters = 0 +extra_perimeters_on_overhangs = 1 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.46 +fill_angle = 45 +fill_density = 10% +fill_pattern = monotonic +first_layer_acceleration = 2000 +first_layer_acceleration_over_raft = 0 +first_layer_extrusion_width = 0.5 +first_layer_height = 0.26 +first_layer_speed = 30 +first_layer_speed_over_raft = 30 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 30 +gcode_comments = 0 +gcode_label_objects = 1 +gcode_resolution = 0 +gcode_substitutions = +infill_acceleration = 7000 +infill_anchor = 600% +infill_anchor_max = 400% +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.46 +infill_first = 0 +infill_overlap = 25% +infill_speed = 300 +inherits = +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_height = 0.2 +max_print_speed = 300 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 24 +min_bead_width = 85% +min_feature_size = 25% +min_skirt_length = 20 +mmu_segmented_region_interlocking_depth = 0 +mmu_segmented_region_max_width = 0 +notes = +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode +overhang_speed_0 = 75% +overhang_speed_1 = 80% +overhang_speed_2 = 90% +overhang_speed_3 = 100% +overhangs = 1 +perimeter_acceleration = 2000 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.46 +perimeter_generator = arachne +perimeter_speed = 150 +perimeters = 3 +post_process = +print_settings_id = Ellis - Decorative Standard (15mm³) +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +resolution = 0.0125 +seam_position = aligned +single_extruder_multi_material_priming = 1 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +small_perimeter_speed = 30 +solid_infill_acceleration = 5000 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.56 +solid_infill_speed = 200 +spiral_vase = 0 +staggered_inner_seams = 0 +standby_temperature_delta = -5 +support_material = 1 +support_material_angle = 0 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 1 +support_material_closing_radius = 2 +support_material_contact_distance = 0.1 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = rectilinear +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100 +support_material_pattern = rectilinear +support_material_spacing = 3 +support_material_speed = 120 +support_material_style = organic +support_material_synchronize_layers = 0 +support_material_threshold = 30 +support_material_with_sheath = 0 +support_material_xy_spacing = 75% +support_tree_angle = 40 +support_tree_angle_slow = 25 +support_tree_branch_diameter = 2 +support_tree_branch_diameter_angle = 5 +support_tree_branch_diameter_double_wall = 3 +support_tree_branch_distance = 1 +support_tree_tip_diameter = 0.8 +support_tree_top_rate = 30% +thick_bridges = 0 +thin_walls = 1 +threads = 16 +top_fill_pattern = monotoniclines +top_infill_extrusion_width = 0.4 +top_solid_infill_acceleration = 2000 +top_solid_infill_speed = 60 +top_solid_layers = 5 +top_solid_min_thickness = 1 +travel_acceleration = 10000 +travel_speed = 300 +travel_speed_z = 0 +wall_distribution_count = 1 +wall_transition_angle = 10 +wall_transition_filter_deviation = 25% +wall_transition_length = 100% +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_cone_angle = 0 +wipe_tower_extra_spacing = 100% +wipe_tower_extruder = 0 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [print:_Ellis_PIF_Standard_15mm3_CoreXY-Speeds] avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 @@ -885,6 +1062,183 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 +[print:_Ellis_PIF_Standard_24mm3_CoreXY-Speeds] +avoid_crossing_curled_overhangs = 0 +avoid_crossing_perimeters = 0 +avoid_crossing_perimeters_max_detour = 0 +bottom_fill_pattern = monotoniclines +bottom_solid_layers = 5 +bottom_solid_min_thickness = 1 +bridge_acceleration = 5000 +bridge_angle = 0 +bridge_flow_ratio = 0.85 +bridge_speed = 140 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +compatible_printers = +compatible_printers_condition = +complete_objects = 0 +default_acceleration = 4000 +dont_support_bridges = 1 +draft_shield = disabled +elefant_foot_compensation = 0 +enable_dynamic_overhang_speeds = 0 +external_perimeter_acceleration = 1000 +external_perimeter_extrusion_width = 0.4 +external_perimeter_speed = 80 +external_perimeters_first = 0 +extra_perimeters = 0 +extra_perimeters_on_overhangs = 1 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.46 +fill_angle = 45 +fill_density = 40% +fill_pattern = grid +first_layer_acceleration = 2000 +first_layer_acceleration_over_raft = 0 +first_layer_extrusion_width = 0.5 +first_layer_height = 0.26 +first_layer_speed = 30 +first_layer_speed_over_raft = 30 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 30 +gcode_comments = 0 +gcode_label_objects = 1 +gcode_resolution = 0 +gcode_substitutions = +infill_acceleration = 7000 +infill_anchor = 600% +infill_anchor_max = 400% +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.64 +infill_first = 0 +infill_overlap = 25% +infill_speed = 300 +inherits = +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_height = 0.2 +max_print_speed = 300 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 24 +min_bead_width = 85% +min_feature_size = 25% +min_skirt_length = 20 +mmu_segmented_region_interlocking_depth = 0 +mmu_segmented_region_max_width = 0 +notes = +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode +overhang_speed_0 = 75% +overhang_speed_1 = 80% +overhang_speed_2 = 90% +overhang_speed_3 = 100% +overhangs = 1 +perimeter_acceleration = 2000 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.4 +perimeter_generator = arachne +perimeter_speed = 150 +perimeters = 4 +post_process = +print_settings_id = Ellis - PIF Standard (15mm³) +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +resolution = 0.0125 +seam_position = aligned +single_extruder_multi_material_priming = 1 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +small_perimeter_speed = 30 +solid_infill_acceleration = 5000 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.56 +solid_infill_speed = 200 +spiral_vase = 0 +staggered_inner_seams = 0 +standby_temperature_delta = -5 +support_material = 0 +support_material_angle = 0 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 1 +support_material_closing_radius = 2 +support_material_contact_distance = 0.1 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = rectilinear +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100 +support_material_pattern = rectilinear +support_material_spacing = 3 +support_material_speed = 120 +support_material_style = organic +support_material_synchronize_layers = 0 +support_material_threshold = 30 +support_material_with_sheath = 0 +support_material_xy_spacing = 75% +support_tree_angle = 40 +support_tree_angle_slow = 25 +support_tree_branch_diameter = 2 +support_tree_branch_diameter_angle = 5 +support_tree_branch_diameter_double_wall = 3 +support_tree_branch_distance = 1 +support_tree_tip_diameter = 0.8 +support_tree_top_rate = 30% +thick_bridges = 0 +thin_walls = 1 +threads = 16 +top_fill_pattern = monotoniclines +top_infill_extrusion_width = 0.4 +top_solid_infill_acceleration = 2000 +top_solid_infill_speed = 60 +top_solid_layers = 5 +top_solid_min_thickness = 1 +travel_acceleration = 10000 +travel_speed = 300 +travel_speed_z = 0 +wall_distribution_count = 1 +wall_transition_angle = 10 +wall_transition_filter_deviation = 25% +wall_transition_length = 100% +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_cone_angle = 0 +wipe_tower_extra_spacing = 100% +wipe_tower_extruder = 0 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + [filament:Basic PETG] bed_temperature = 70 bridge_fan_speed = 100 @@ -2543,8 +2897,8 @@ temperature = 210 [printer:Sovol SV06] autoemit_temperature_commands = 1 -bed_custom_model = /home/bassam/3dprinter/_tools/Ellis-SuperSlicer-Profiles/misc/sv06/SV06BuildPlate.stl -bed_custom_texture = /home/bassam/3dprinter/_tools/Ellis-SuperSlicer-Profiles/misc/sv06/sv06-buildplate-better.png +bed_custom_model = +bed_custom_texture = bed_shape = 0x0,223x0,223x223,0x223 before_layer_gcode = between_objects_gcode = @@ -2624,8 +2978,8 @@ z_offset = 0 [printer:Sovol SV06 Plus] autoemit_temperature_commands = 1 -bed_custom_model = /home/bassam/3dprinter/_tools/Ellis-SuperSlicer-Profiles/misc/sv06/SV06BuildPlate.stl -bed_custom_texture = /home/bassam/3dprinter/_tools/Ellis-SuperSlicer-Profiles/misc/sv06/sv06-buildplate-better.png +bed_custom_model = +bed_custom_texture = bed_shape = 0x0,300x0,300x300,0x300 before_layer_gcode = between_objects_gcode = @@ -2703,9 +3057,171 @@ variable_layer_height = 1 wipe = 0 z_offset = 0 +[printer:Sovol SV07] +autoemit_temperature_commands = 1 +bed_custom_model = +bed_custom_texture = +bed_shape = 0x0,220x0,220x220,0x220 +before_layer_gcode = +between_objects_gcode = +color_change_gcode = M600 +cooling_tube_length = 5 +cooling_tube_retraction = 91.5 +default_filament_profile = "Prusament PLA" +default_print_profile = 0.15mm QUALITY @MK3 +deretract_speed = 40 +end_gcode = PRINT_END +extra_loading_move = -2 +extruder_colour = #FFE3CA +extruder_offset = 0x0 +gcode_flavor = klipper +high_current_on_filament_swap = 0 +host_type = octoprint +inherits = +layer_gcode = +machine_limits_usage = time_estimate_only +machine_max_acceleration_e = 5000,5000 +machine_max_acceleration_extruding = 1250,1250 +machine_max_acceleration_retracting = 1250,1250 +machine_max_acceleration_travel = 1500,1250 +machine_max_acceleration_x = 1000,960 +machine_max_acceleration_y = 1000,960 +machine_max_acceleration_z = 200,200 +machine_max_feedrate_e = 120,120 +machine_max_feedrate_x = 200,100 +machine_max_feedrate_y = 200,100 +machine_max_feedrate_z = 12,12 +machine_max_jerk_e = 4.5,4.5 +machine_max_jerk_x = 8,8 +machine_max_jerk_y = 8,8 +machine_max_jerk_z = 0.4,0.4 +machine_min_extruding_rate = 0,0 +machine_min_travel_rate = 0,0 +max_layer_height = 0 +max_print_height = 250 +min_layer_height = 0.04 +nozzle_diameter = 0.4 +parking_pos_retraction = 92 +pause_print_gcode = PAUSE +print_host = +printer_model = +printer_notes = +printer_settings_id = Sovol Sv06 +printer_technology = FFF +printer_variant = 0.4 +printer_vendor = +printhost_apikey = +printhost_cafile = +remaining_times = 1 +retract_before_travel = 2 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.5 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0.2 +retract_lift_below = 250 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 40 +silent_mode = 0 +single_extruder_multi_material = 0 +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\n; PURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +template_custom_gcode = +thumbnails = 32x32,400x300 +thumbnails_format = PNG +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + +[printer:Sovol SV07 Plus] +autoemit_temperature_commands = 1 +bed_custom_model = +bed_custom_texture = +bed_shape = 0x0,300x0,300x300,0x300 +before_layer_gcode = +between_objects_gcode = +color_change_gcode = M600 +cooling_tube_length = 5 +cooling_tube_retraction = 91.5 +default_filament_profile = "Prusament PLA" +default_print_profile = 0.15mm QUALITY @MK3 +deretract_speed = 40 +end_gcode = PRINT_END +extra_loading_move = -2 +extruder_colour = #FFE3CA +extruder_offset = 0x0 +gcode_flavor = klipper +high_current_on_filament_swap = 0 +host_type = octoprint +inherits = +layer_gcode = +machine_limits_usage = time_estimate_only +machine_max_acceleration_e = 5000,5000 +machine_max_acceleration_extruding = 1250,1250 +machine_max_acceleration_retracting = 1250,1250 +machine_max_acceleration_travel = 1500,1250 +machine_max_acceleration_x = 1000,960 +machine_max_acceleration_y = 1000,960 +machine_max_acceleration_z = 200,200 +machine_max_feedrate_e = 120,120 +machine_max_feedrate_x = 200,100 +machine_max_feedrate_y = 200,100 +machine_max_feedrate_z = 12,12 +machine_max_jerk_e = 4.5,4.5 +machine_max_jerk_x = 8,8 +machine_max_jerk_y = 8,8 +machine_max_jerk_z = 0.4,0.4 +machine_min_extruding_rate = 0,0 +machine_min_travel_rate = 0,0 +max_layer_height = 0 +max_print_height = 350 +min_layer_height = 0.04 +nozzle_diameter = 0.4 +parking_pos_retraction = 92 +pause_print_gcode = PAUSE +print_host = +printer_model = +printer_notes = +printer_settings_id = Sovol Sv06 +printer_technology = FFF +printer_variant = 0.4 +printer_vendor = +printhost_apikey = +printhost_cafile = +remaining_times = 1 +retract_before_travel = 2 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.5 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0.2 +retract_lift_below = 250 +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 40 +silent_mode = 0 +single_extruder_multi_material = 0 +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\n; PURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +template_custom_gcode = +thumbnails = 32x32,400x300 +thumbnails_format = PNG +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +z_offset = 0 + [physical_printer:Local SV06] host_type = octoprint -preset_name = +preset_name = Sovol SV06 preset_names = "Sovol SV06" print_host = http://10.0.0.51 printer_technology = FFF @@ -2719,7 +3235,7 @@ printhost_user = [physical_printer:Local SV06 Plus] host_type = octoprint -preset_name = +preset_name = Sovol SV06 Plus preset_names = "Sovol SV06 Plus" print_host = http://10.0.0.51 printer_technology = FFF @@ -2731,8 +3247,36 @@ printhost_port = printhost_ssl_ignore_revoke = 0 printhost_user = +[physical_printer:Local SV07] +host_type = octoprint +preset_name = Sovol SV07 +preset_names = "Sovol SV07" +print_host = http://10.0.0.51 +printer_technology = FFF +printhost_apikey = +printhost_authorization_type = key +printhost_cafile = +printhost_password = +printhost_port = +printhost_ssl_ignore_revoke = 0 +printhost_user = + +[physical_printer:Local SV07 Plus] +host_type = octoprint +preset_name = Sovol SV07 Plus +preset_names = "Sovol SV07 Plus" +print_host = http://10.0.0.51 +printer_technology = FFF +printhost_apikey = +printhost_authorization_type = key +printhost_cafile = +printhost_password = +printhost_port = +printhost_ssl_ignore_revoke = 0 +printhost_user = + [presets] -print = Ellis_Decorative_Standard_15mm3 +print = _Ellis_PIF_Standard_15mm3_CoreXY-Speeds sla_print = sla_material = printer = Sovol SV06 diff --git a/misc/SuperSlicer_config_bundle-SV06-Both.ini b/misc/SuperSlicer_config_bundle-SV06-SV07-All.ini similarity index 90% rename from misc/SuperSlicer_config_bundle-SV06-Both.ini rename to misc/SuperSlicer_config_bundle-SV06-SV07-All.ini index c31c8a2..599d78e 100644 --- a/misc/SuperSlicer_config_bundle-SV06-Both.ini +++ b/misc/SuperSlicer_config_bundle-SV06-SV07-All.ini @@ -1,6 +1,6 @@ -# generated by SuperSlicer 2.4 on 2023-11-23 at 19:03:00 UTC +# generated by SuperSlicer 2.4 on 2023-12-01 at 18:42:11 UTC -[print:Ellis_Decorative_45_Degree_15mm3] +[print:Ellis_Decorative_45_Degree_15mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -8,17 +8,17 @@ avoid_crossing_perimeters_max_detour = 0 bottom_fill_pattern = monotonicgapfill bottom_solid_layers = 3 bottom_solid_min_thickness = 0.6 -bridge_acceleration = 3000 +bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 85% -bridge_internal_acceleration = 3000 +bridge_internal_acceleration = 5000 bridge_overlap = 50% bridge_overlap_min = 50% bridge_speed = 140 bridge_speed_internal = 100% bridge_type = nozzle bridged_infill_margin = 300% -brim_acceleration = 1000 +brim_acceleration = 5000 brim_ears = 0 brim_ears_detection_length = 1 brim_ears_max_angle = 120 @@ -39,7 +39,7 @@ curve_smoothing_angle_concave = 0 curve_smoothing_angle_convex = 0 curve_smoothing_cutoff_dist = 2 curve_smoothing_precision = 0 -default_acceleration = 3500 +default_acceleration = 4000 default_speed = 100 dont_support_bridges = 1 draft_shield = disabled @@ -49,7 +49,7 @@ enforce_retract_first_layer = 0 ensure_vertical_shell_thickness = 0 exact_last_layer_height = 0 external_infill_margin = 4 -external_perimeter_acceleration = 750 +external_perimeter_acceleration = 1000 external_perimeter_cut_corners = 0% external_perimeter_extrusion_spacing = external_perimeter_extrusion_width = 0 @@ -73,7 +73,7 @@ fill_pattern = monotonic fill_smooth_distribution = 10% fill_smooth_width = 50% fill_top_flow_ratio = 100% -first_layer_acceleration = 1000 +first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% @@ -88,7 +88,7 @@ first_layer_speed_over_raft = 30 fuzzy_skin = none fuzzy_skin_point_dist = 200% fuzzy_skin_thickness = 150% -gap_fill_acceleration = 1000 +gap_fill_acceleration = 2000 gap_fill_enabled = 1 gap_fill_flow_match_perimeter = 0% gap_fill_last = 1 @@ -104,7 +104,7 @@ hole_size_threshold = 100 hole_to_polyhole = 0 hole_to_polyhole_threshold = 0.01 hole_to_polyhole_twisted = 1 -infill_acceleration = 3500 +infill_acceleration = 7000 infill_anchor = 600% infill_anchor_max = 0 infill_connection = connected @@ -124,14 +124,14 @@ infill_speed = 300 inherits = interface_shells = 0 ironing = 0 -ironing_acceleration = 1000 +ironing_acceleration = 2000 ironing_angle = -1 ironing_flowrate = 15% ironing_spacing = 0.1 ironing_speed = 15 ironing_type = top layer_height = 0.2 -max_print_speed = 200 +max_print_speed = 300 max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% @@ -150,13 +150,13 @@ only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode over_bridge_flow_ratio = 100% -overhangs_acceleration = 1000 +overhangs_acceleration = 2000 overhangs_reverse = 0 overhangs_reverse_threshold = 250% overhangs_speed = 100% overhangs_width = 75% overhangs_width_speed = 0 -perimeter_acceleration = 1000 +perimeter_acceleration = 2000 perimeter_bonding = 0% perimeter_extruder = 1 perimeter_extrusion_spacing = @@ -197,7 +197,7 @@ small_perimeter_max_length = 20 small_perimeter_min_length = 6 small_perimeter_speed = 30 solid_fill_pattern = monotonic -solid_infill_acceleration = 3000 +solid_infill_acceleration = 5000 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -209,7 +209,7 @@ solid_over_perimeters = 0 spiral_vase = 0 standby_temperature_delta = -5 support_material = 1 -support_material_acceleration = 3500 +support_material_acceleration = 5000 support_material_angle = 45 support_material_auto = 1 support_material_bottom_contact_distance = 0 @@ -221,7 +221,7 @@ support_material_contact_distance_type = filament support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 -support_material_interface_acceleration = 3500 +support_material_interface_acceleration = 5000 support_material_interface_contact_loops = 0 support_material_interface_extruder = 1 support_material_interface_layers = 2 @@ -239,7 +239,7 @@ support_material_xy_spacing = 75% thin_perimeters = 80% thin_perimeters_all = 20% thin_walls = 1 -thin_walls_acceleration = 750 +thin_walls_acceleration = 2000 thin_walls_merge = 1 thin_walls_min_width = 33% thin_walls_overlap = 50% @@ -248,13 +248,13 @@ threads = 16 top_fill_pattern = monotonicgapfill top_infill_extrusion_spacing = top_infill_extrusion_width = 100% -top_solid_infill_acceleration = 1000 +top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 top_solid_min_thickness = 1 -travel_acceleration = 3500 +travel_acceleration = 7000 travel_deceleration_use_target = 1 -travel_speed = 200 +travel_speed = 300 travel_speed_z = 0 wipe_tower = 0 wipe_tower_bridging = 10 @@ -267,7 +267,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:Ellis_Decorative_Standard_15mm3] +[print:Ellis_Decorative_Standard_15mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -275,17 +275,17 @@ avoid_crossing_perimeters_max_detour = 0 bottom_fill_pattern = monotonicgapfill bottom_solid_layers = 3 bottom_solid_min_thickness = 0.6 -bridge_acceleration = 3000 +bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 85% -bridge_internal_acceleration = 3000 +bridge_internal_acceleration = 5000 bridge_overlap = 50% bridge_overlap_min = 50% bridge_speed = 140 bridge_speed_internal = 100% bridge_type = nozzle bridged_infill_margin = 300% -brim_acceleration = 1000 +brim_acceleration = 5000 brim_ears = 0 brim_ears_detection_length = 1 brim_ears_max_angle = 120 @@ -306,7 +306,7 @@ curve_smoothing_angle_concave = 0 curve_smoothing_angle_convex = 0 curve_smoothing_cutoff_dist = 2 curve_smoothing_precision = 0 -default_acceleration = 3500 +default_acceleration = 4000 default_speed = 100 dont_support_bridges = 1 draft_shield = disabled @@ -316,7 +316,7 @@ enforce_retract_first_layer = 0 ensure_vertical_shell_thickness = 0 exact_last_layer_height = 0 external_infill_margin = 4 -external_perimeter_acceleration = 750 +external_perimeter_acceleration = 1000 external_perimeter_cut_corners = 0% external_perimeter_extrusion_spacing = external_perimeter_extrusion_width = 0 @@ -340,7 +340,7 @@ fill_pattern = monotonic fill_smooth_distribution = 10% fill_smooth_width = 50% fill_top_flow_ratio = 100% -first_layer_acceleration = 1000 +first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% @@ -355,7 +355,7 @@ first_layer_speed_over_raft = 30 fuzzy_skin = none fuzzy_skin_point_dist = 200% fuzzy_skin_thickness = 150% -gap_fill_acceleration = 1000 +gap_fill_acceleration = 2000 gap_fill_enabled = 1 gap_fill_flow_match_perimeter = 0% gap_fill_last = 1 @@ -371,7 +371,7 @@ hole_size_threshold = 100 hole_to_polyhole = 0 hole_to_polyhole_threshold = 0.01 hole_to_polyhole_twisted = 1 -infill_acceleration = 3500 +infill_acceleration = 7000 infill_anchor = 600% infill_anchor_max = 0 infill_connection = connected @@ -391,14 +391,14 @@ infill_speed = 300 inherits = interface_shells = 0 ironing = 0 -ironing_acceleration = 1000 +ironing_acceleration = 2000 ironing_angle = -1 ironing_flowrate = 15% ironing_spacing = 0.1 ironing_speed = 15 ironing_type = top layer_height = 0.2 -max_print_speed = 200 +max_print_speed = 300 max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% @@ -417,13 +417,13 @@ only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode over_bridge_flow_ratio = 100% -overhangs_acceleration = 1000 +overhangs_acceleration = 2000 overhangs_reverse = 0 overhangs_reverse_threshold = 250% overhangs_speed = 100% overhangs_width = 75% overhangs_width_speed = 0 -perimeter_acceleration = 1000 +perimeter_acceleration = 2000 perimeter_bonding = 0% perimeter_extruder = 1 perimeter_extrusion_spacing = @@ -464,7 +464,7 @@ small_perimeter_max_length = 20 small_perimeter_min_length = 6 small_perimeter_speed = 30 solid_fill_pattern = monotonic -solid_infill_acceleration = 3000 +solid_infill_acceleration = 5000 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -476,7 +476,7 @@ solid_over_perimeters = 0 spiral_vase = 0 standby_temperature_delta = -5 support_material = 1 -support_material_acceleration = 3500 +support_material_acceleration = 5000 support_material_angle = 0 support_material_auto = 1 support_material_bottom_contact_distance = 0 @@ -488,7 +488,7 @@ support_material_contact_distance_type = filament support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 -support_material_interface_acceleration = 3500 +support_material_interface_acceleration = 5000 support_material_interface_contact_loops = 0 support_material_interface_extruder = 1 support_material_interface_layers = 2 @@ -506,7 +506,7 @@ support_material_xy_spacing = 75% thin_perimeters = 80% thin_perimeters_all = 20% thin_walls = 1 -thin_walls_acceleration = 750 +thin_walls_acceleration = 2000 thin_walls_merge = 1 thin_walls_min_width = 33% thin_walls_overlap = 50% @@ -515,13 +515,13 @@ threads = 16 top_fill_pattern = monotonicgapfill top_infill_extrusion_spacing = top_infill_extrusion_width = 100% -top_solid_infill_acceleration = 1000 +top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 top_solid_min_thickness = 1 -travel_acceleration = 3500 +travel_acceleration = 7000 travel_deceleration_use_target = 1 -travel_speed = 200 +travel_speed = 300 travel_speed_z = 0 wipe_tower = 0 wipe_tower_bridging = 10 @@ -534,7 +534,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:Ellis_PIF_45_Degree_15mm3] +[print:Ellis_PIF_45_Degree_15mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -542,17 +542,17 @@ avoid_crossing_perimeters_max_detour = 0 bottom_fill_pattern = monotonicgapfill bottom_solid_layers = 5 bottom_solid_min_thickness = 1 -bridge_acceleration = 3000 +bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 85% -bridge_internal_acceleration = 3000 +bridge_internal_acceleration = 5000 bridge_overlap = 50% bridge_overlap_min = 50% bridge_speed = 140 bridge_speed_internal = 100% bridge_type = nozzle bridged_infill_margin = 300% -brim_acceleration = 1000 +brim_acceleration = 5000 brim_ears = 0 brim_ears_detection_length = 1 brim_ears_max_angle = 120 @@ -573,7 +573,7 @@ curve_smoothing_angle_concave = 0 curve_smoothing_angle_convex = 0 curve_smoothing_cutoff_dist = 2 curve_smoothing_precision = 0 -default_acceleration = 3500 +default_acceleration = 4000 default_speed = 100 dont_support_bridges = 1 draft_shield = disabled @@ -583,7 +583,7 @@ enforce_retract_first_layer = 0 ensure_vertical_shell_thickness = 0 exact_last_layer_height = 0 external_infill_margin = 4 -external_perimeter_acceleration = 750 +external_perimeter_acceleration = 1000 external_perimeter_cut_corners = 0% external_perimeter_extrusion_spacing = external_perimeter_extrusion_width = 100% @@ -607,7 +607,7 @@ fill_pattern = grid fill_smooth_distribution = 10% fill_smooth_width = 50% fill_top_flow_ratio = 100% -first_layer_acceleration = 1000 +first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% @@ -622,7 +622,7 @@ first_layer_speed_over_raft = 30 fuzzy_skin = none fuzzy_skin_point_dist = 200% fuzzy_skin_thickness = 150% -gap_fill_acceleration = 1000 +gap_fill_acceleration = 2000 gap_fill_enabled = 1 gap_fill_flow_match_perimeter = 0% gap_fill_last = 1 @@ -638,7 +638,7 @@ hole_size_threshold = 100 hole_to_polyhole = 0 hole_to_polyhole_threshold = 0.01 hole_to_polyhole_twisted = 1 -infill_acceleration = 3500 +infill_acceleration = 7000 infill_anchor = 600% infill_anchor_max = 0 infill_connection = connected @@ -658,14 +658,14 @@ infill_speed = 300 inherits = interface_shells = 0 ironing = 0 -ironing_acceleration = 1000 +ironing_acceleration = 2000 ironing_angle = -1 ironing_flowrate = 15% ironing_spacing = 0.1 ironing_speed = 15 ironing_type = top layer_height = 0.2 -max_print_speed = 200 +max_print_speed = 300 max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% @@ -684,13 +684,13 @@ only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode over_bridge_flow_ratio = 100% -overhangs_acceleration = 1000 +overhangs_acceleration = 2000 overhangs_reverse = 0 overhangs_reverse_threshold = 250% overhangs_speed = 100% overhangs_width = 75% overhangs_width_speed = 0 -perimeter_acceleration = 1000 +perimeter_acceleration = 2000 perimeter_bonding = 0% perimeter_extruder = 1 perimeter_extrusion_spacing = @@ -731,7 +731,7 @@ small_perimeter_max_length = 20 small_perimeter_min_length = 6 small_perimeter_speed = 30 solid_fill_pattern = monotonic -solid_infill_acceleration = 3000 +solid_infill_acceleration = 5000 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -743,7 +743,7 @@ solid_over_perimeters = 0 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 -support_material_acceleration = 3500 +support_material_acceleration = 5000 support_material_angle = 45 support_material_auto = 1 support_material_bottom_contact_distance = 0 @@ -755,7 +755,7 @@ support_material_contact_distance_type = filament support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 -support_material_interface_acceleration = 3500 +support_material_interface_acceleration = 5000 support_material_interface_contact_loops = 0 support_material_interface_extruder = 1 support_material_interface_layers = 2 @@ -773,7 +773,7 @@ support_material_xy_spacing = 75% thin_perimeters = 80% thin_perimeters_all = 20% thin_walls = 1 -thin_walls_acceleration = 750 +thin_walls_acceleration = 2000 thin_walls_merge = 1 thin_walls_min_width = 33% thin_walls_overlap = 50% @@ -782,13 +782,13 @@ threads = 16 top_fill_pattern = monotonicgapfill top_infill_extrusion_spacing = top_infill_extrusion_width = 100% -top_solid_infill_acceleration = 1000 +top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 top_solid_min_thickness = 1 -travel_acceleration = 3500 +travel_acceleration = 7000 travel_deceleration_use_target = 1 -travel_speed = 200 +travel_speed = 300 travel_speed_z = 0 wipe_tower = 0 wipe_tower_bridging = 10 @@ -801,7 +801,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:Ellis_PIF_Standard_15mm3] +[print:Ellis_PIF_Standard_15mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -809,17 +809,17 @@ avoid_crossing_perimeters_max_detour = 0 bottom_fill_pattern = monotonicgapfill bottom_solid_layers = 5 bottom_solid_min_thickness = 1 -bridge_acceleration = 3000 +bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 85% -bridge_internal_acceleration = 3000 +bridge_internal_acceleration = 5000 bridge_overlap = 50% bridge_overlap_min = 50% bridge_speed = 140 bridge_speed_internal = 100% bridge_type = nozzle bridged_infill_margin = 300% -brim_acceleration = 1000 +brim_acceleration = 5000 brim_ears = 0 brim_ears_detection_length = 1 brim_ears_max_angle = 120 @@ -840,7 +840,7 @@ curve_smoothing_angle_concave = 0 curve_smoothing_angle_convex = 0 curve_smoothing_cutoff_dist = 2 curve_smoothing_precision = 0 -default_acceleration = 3500 +default_acceleration = 4000 default_speed = 100 dont_support_bridges = 1 draft_shield = disabled @@ -850,7 +850,7 @@ enforce_retract_first_layer = 0 ensure_vertical_shell_thickness = 0 exact_last_layer_height = 0 external_infill_margin = 4 -external_perimeter_acceleration = 750 +external_perimeter_acceleration = 1000 external_perimeter_cut_corners = 0% external_perimeter_extrusion_spacing = external_perimeter_extrusion_width = 100% @@ -874,7 +874,7 @@ fill_pattern = grid fill_smooth_distribution = 10% fill_smooth_width = 50% fill_top_flow_ratio = 100% -first_layer_acceleration = 1000 +first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_spacing = first_layer_extrusion_width = 125% @@ -889,7 +889,7 @@ first_layer_speed_over_raft = 30 fuzzy_skin = none fuzzy_skin_point_dist = 200% fuzzy_skin_thickness = 150% -gap_fill_acceleration = 1000 +gap_fill_acceleration = 2000 gap_fill_enabled = 1 gap_fill_flow_match_perimeter = 0% gap_fill_last = 1 @@ -905,7 +905,7 @@ hole_size_threshold = 100 hole_to_polyhole = 0 hole_to_polyhole_threshold = 0.01 hole_to_polyhole_twisted = 1 -infill_acceleration = 3500 +infill_acceleration = 7000 infill_anchor = 600% infill_anchor_max = 0 infill_connection = connected @@ -925,14 +925,14 @@ infill_speed = 300 inherits = interface_shells = 0 ironing = 0 -ironing_acceleration = 1000 +ironing_acceleration = 2000 ironing_angle = -1 ironing_flowrate = 15% ironing_spacing = 0.1 ironing_speed = 15 ironing_type = top layer_height = 0.2 -max_print_speed = 200 +max_print_speed = 300 max_volumetric_speed = 15 milling_after_z = 200% milling_extra_size = 150% @@ -951,13 +951,13 @@ only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode over_bridge_flow_ratio = 100% -overhangs_acceleration = 1000 +overhangs_acceleration = 2000 overhangs_reverse = 0 overhangs_reverse_threshold = 250% overhangs_speed = 100% overhangs_width = 75% overhangs_width_speed = 0 -perimeter_acceleration = 1000 +perimeter_acceleration = 2000 perimeter_bonding = 0% perimeter_extruder = 1 perimeter_extrusion_spacing = @@ -998,7 +998,7 @@ small_perimeter_max_length = 20 small_perimeter_min_length = 6 small_perimeter_speed = 30 solid_fill_pattern = monotonic -solid_infill_acceleration = 3000 +solid_infill_acceleration = 5000 solid_infill_below_area = 0 solid_infill_every_layers = 0 solid_infill_extruder = 1 @@ -1010,7 +1010,7 @@ solid_over_perimeters = 0 spiral_vase = 0 standby_temperature_delta = -5 support_material = 0 -support_material_acceleration = 3500 +support_material_acceleration = 5000 support_material_angle = 0 support_material_auto = 1 support_material_bottom_contact_distance = 0 @@ -1022,7 +1022,7 @@ support_material_contact_distance_type = filament support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 -support_material_interface_acceleration = 3500 +support_material_interface_acceleration = 5000 support_material_interface_contact_loops = 0 support_material_interface_extruder = 1 support_material_interface_layers = 2 @@ -1040,7 +1040,7 @@ support_material_xy_spacing = 75% thin_perimeters = 80% thin_perimeters_all = 20% thin_walls = 1 -thin_walls_acceleration = 750 +thin_walls_acceleration = 2000 thin_walls_merge = 1 thin_walls_min_width = 33% thin_walls_overlap = 50% @@ -1049,13 +1049,13 @@ threads = 16 top_fill_pattern = monotonicgapfill top_infill_extrusion_spacing = top_infill_extrusion_width = 100% -top_solid_infill_acceleration = 1000 +top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 top_solid_min_thickness = 1 -travel_acceleration = 3500 +travel_acceleration = 7000 travel_deceleration_use_target = 1 -travel_speed = 200 +travel_speed = 300 travel_speed_z = 0 wipe_tower = 0 wipe_tower_bridging = 10 @@ -1068,7 +1068,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_Decorative_45_Degree_15mm3-CoreXY-Speeds] +[print:_Ellis_Decorative_45_Degree_24mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -1200,7 +1200,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 300 -max_volumetric_speed = 15 +max_volumetric_speed = 24 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -1335,7 +1335,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_Decorative_Standard_15mm3-CoreXY-Speeds] +[print:_Ellis_Decorative_Standard_24mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -1467,7 +1467,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 300 -max_volumetric_speed = 15 +max_volumetric_speed = 24 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -1602,7 +1602,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_PIF_45_Degree_15mm3-CoreXY-Speeds] +[print:_Ellis_PIF_45_Degree_24mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -1734,7 +1734,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 300 -max_volumetric_speed = 15 +max_volumetric_speed = 24 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -1869,7 +1869,7 @@ wipe_tower_y = 140 xy_inner_size_compensation = 0 xy_size_compensation = 0 -[print:_Ellis_PIF_Standard_15mm3-CoreXY-Speeds] +[print:_Ellis_PIF_Standard_24mm3-CoreXY-Speeds] allow_empty_layers = 0 avoid_crossing_not_first_layer = 1 avoid_crossing_perimeters = 0 @@ -2001,7 +2001,7 @@ ironing_speed = 15 ironing_type = top layer_height = 0.2 max_print_speed = 300 -max_volumetric_speed = 15 +max_volumetric_speed = 24 milling_after_z = 200% milling_extra_size = 150% milling_post_process = 0 @@ -3615,9 +3615,9 @@ support_material_interface_fan_speed = -1 temperature = 210 top_fan_speed = -1 -[printer:Sovol Sv06] -bed_custom_model = /home/bassam/3dprinter/voron/voron-0-parts/Ellis-SuperSlicer-Profiles/misc/sv06/SV06BuildPlate.stl -bed_custom_texture = /home/bassam/3dprinter/voron/voron-0-parts/Ellis-SuperSlicer-Profiles/misc/sv06/sv06-buildplate-better.png +[printer:Sovol SV06] +bed_custom_model = +bed_custom_texture = bed_shape = 0x0,223x0,223x223,0x223 before_layer_gcode = between_objects_gcode = @@ -3682,7 +3682,7 @@ print_host = printer_custom_variables = printer_model = printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n -printer_settings_id = Sovol Sv06 +printer_settings_id = Sovol SV06 printer_technology = FFF printer_variant = 0.4 printer_vendor = @@ -3740,9 +3740,9 @@ wipe_speed = 0 z_offset = 0 z_step = 0.005 -[printer:Sovol Sv06 Plus] -bed_custom_model = /home/bassam/3dprinter/voron/voron-0-parts/Ellis-SuperSlicer-Profiles/misc/sv06/SV06BuildPlate.stl -bed_custom_texture = /home/bassam/3dprinter/voron/voron-0-parts/Ellis-SuperSlicer-Profiles/misc/sv06/sv06-buildplate-better.png +[printer:Sovol SV06 Plus] +bed_custom_model = +bed_custom_texture = bed_shape = 0x0,300x0,300x300,0x300 before_layer_gcode = between_objects_gcode = @@ -3807,7 +3807,7 @@ print_host = printer_custom_variables = printer_model = printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n -printer_settings_id = Sovol Sv06 +printer_settings_id = Sovol SV06 printer_technology = FFF printer_variant = 0.4 printer_vendor = @@ -3865,10 +3865,260 @@ wipe_speed = 0 z_offset = 0 z_step = 0.005 -[physical_printer:Local] +[printer:Sovol SV07] +bed_custom_model = +bed_custom_texture = +bed_shape = 0x0,220x0,220x220,0x220 +before_layer_gcode = +between_objects_gcode = +color_change_gcode = M600 +cooling_tube_length = 5 +cooling_tube_retraction = 91.5 +default_filament_profile = "Prusament PLA" +default_print_profile = 0.15mm QUALITY @MK3 +deretract_speed = 40 +end_gcode = PRINT_END +extra_loading_move = -2 +extruder_colour = #FFE3CA +extruder_fan_offset = 0% +extruder_offset = 0x0 +extruder_temperature_offset = 0 +fan_kickstart = 0 +fan_percentage = 0 +fan_speedup_overhangs = 1 +fan_speedup_time = 0 +feature_gcode = +gcode_filename_illegal_char = [<>:"/\\\\|?*] +gcode_flavor = klipper +gcode_precision_e = 5 +gcode_precision_xyz = 3 +high_current_on_filament_swap = 0 host_type = octoprint -preset_name = Sovol Sv06 -preset_names = "Sovol Sv06" +inherits = +init_z_rotate = 0 +layer_gcode = +lift_min = 0 +machine_limits_usage = time_estimate_only +machine_max_acceleration_e = 5000,5000 +machine_max_acceleration_extruding = 1250,1250 +machine_max_acceleration_retracting = 1250,1250 +machine_max_acceleration_travel = 1500,1250 +machine_max_acceleration_x = 1000,960 +machine_max_acceleration_y = 1000,960 +machine_max_acceleration_z = 200,200 +machine_max_feedrate_e = 120,120 +machine_max_feedrate_x = 200,100 +machine_max_feedrate_y = 200,100 +machine_max_feedrate_z = 12,12 +machine_max_jerk_e = 4.5,4.5 +machine_max_jerk_x = 8,8 +machine_max_jerk_y = 8,8 +machine_max_jerk_z = 0.4,0.4 +machine_min_extruding_rate = 0,0 +machine_min_travel_rate = 0,0 +max_gcode_per_second = 1500 +max_layer_height = 75% +max_print_height = 250 +milling_diameter = +milling_toolchange_end_gcode = +milling_toolchange_start_gcode = +milling_z_lift = +min_layer_height = 0.04 +min_length = 0.035 +nozzle_diameter = 0.4 +parking_pos_retraction = 92 +pause_print_gcode = PAUSE +print_host = +printer_custom_variables = +printer_model = +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +printer_settings_id = Sovol SV06 +printer_technology = FFF +printer_variant = 0.4 +printer_vendor = +printhost_apikey = +printhost_cafile = +printhost_port = +remaining_times = 1 +remaining_times_type = m73 +retract_before_travel = 2 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.5 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0.2 +retract_lift_below = 250 +retract_lift_first_layer = 0 +retract_lift_top = "All surfaces" +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 40 +seam_gap = 15% +silent_mode = 0 +single_extruder_multi_material = 0 +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +start_gcode_manual = 0 +template_custom_gcode = +thumbnails = 32x32,400x300 +thumbnails_color = #00FF00 +thumbnails_custom_color = 1 +thumbnails_end_file = 0 +thumbnails_format = PNG +thumbnails_with_bed = 1 +time_cost = 0 +time_estimation_compensation = 100% +time_start_gcode = 20 +time_toolchange = 30 +tool_name = "" +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +wipe_advanced = 0 +wipe_advanced_algo = linear +wipe_advanced_multiplier = 60 +wipe_advanced_nozzle_melted_volume = 120 +wipe_extra_perimeter = 0 +wipe_inside_depth = 50% +wipe_inside_end = 1 +wipe_inside_start = 0 +wipe_only_crossing = 1 +wipe_speed = 0 +z_offset = 0 +z_step = 0.005 + +[printer:Sovol SV07 Plus] +bed_custom_model = +bed_custom_texture = +bed_shape = 0x0,300x0,300x300,0x300 +before_layer_gcode = +between_objects_gcode = +color_change_gcode = M600 +cooling_tube_length = 5 +cooling_tube_retraction = 91.5 +default_filament_profile = "Prusament PLA" +default_print_profile = 0.15mm QUALITY @MK3 +deretract_speed = 40 +end_gcode = PRINT_END +extra_loading_move = -2 +extruder_colour = #FFE3CA +extruder_fan_offset = 0% +extruder_offset = 0x0 +extruder_temperature_offset = 0 +fan_kickstart = 0 +fan_percentage = 0 +fan_speedup_overhangs = 1 +fan_speedup_time = 0 +feature_gcode = +gcode_filename_illegal_char = [<>:"/\\\\|?*] +gcode_flavor = klipper +gcode_precision_e = 5 +gcode_precision_xyz = 3 +high_current_on_filament_swap = 0 +host_type = octoprint +inherits = +init_z_rotate = 0 +layer_gcode = +lift_min = 0 +machine_limits_usage = time_estimate_only +machine_max_acceleration_e = 5000,5000 +machine_max_acceleration_extruding = 1250,1250 +machine_max_acceleration_retracting = 1250,1250 +machine_max_acceleration_travel = 1500,1250 +machine_max_acceleration_x = 1000,960 +machine_max_acceleration_y = 1000,960 +machine_max_acceleration_z = 200,200 +machine_max_feedrate_e = 120,120 +machine_max_feedrate_x = 200,100 +machine_max_feedrate_y = 200,100 +machine_max_feedrate_z = 12,12 +machine_max_jerk_e = 4.5,4.5 +machine_max_jerk_x = 8,8 +machine_max_jerk_y = 8,8 +machine_max_jerk_z = 0.4,0.4 +machine_min_extruding_rate = 0,0 +machine_min_travel_rate = 0,0 +max_gcode_per_second = 1500 +max_layer_height = 75% +max_print_height = 350 +milling_diameter = +milling_toolchange_end_gcode = +milling_toolchange_start_gcode = +milling_z_lift = +min_layer_height = 0.04 +min_length = 0.035 +nozzle_diameter = 0.4 +parking_pos_retraction = 92 +pause_print_gcode = PAUSE +print_host = +printer_custom_variables = +printer_model = +printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK3\n +printer_settings_id = Sovol SV06 +printer_technology = FFF +printer_variant = 0.4 +printer_vendor = +printhost_apikey = +printhost_cafile = +printhost_port = +remaining_times = 1 +remaining_times_type = m73 +retract_before_travel = 2 +retract_before_wipe = 0% +retract_layer_change = 1 +retract_length = 0.5 +retract_length_toolchange = 10 +retract_lift = 0 +retract_lift_above = 0.2 +retract_lift_below = 250 +retract_lift_first_layer = 0 +retract_lift_top = "All surfaces" +retract_restart_extra = 0 +retract_restart_extra_toolchange = 0 +retract_speed = 40 +seam_gap = 15% +silent_mode = 0 +single_extruder_multi_material = 0 +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +start_gcode_manual = 0 +template_custom_gcode = +thumbnails = 32x32,400x300 +thumbnails_color = #00FF00 +thumbnails_custom_color = 1 +thumbnails_end_file = 0 +thumbnails_format = PNG +thumbnails_with_bed = 1 +time_cost = 0 +time_estimation_compensation = 100% +time_start_gcode = 20 +time_toolchange = 30 +tool_name = "" +toolchange_gcode = +use_firmware_retraction = 0 +use_relative_e_distances = 1 +use_volumetric_e = 0 +variable_layer_height = 1 +wipe = 0 +wipe_advanced = 0 +wipe_advanced_algo = linear +wipe_advanced_multiplier = 60 +wipe_advanced_nozzle_melted_volume = 120 +wipe_extra_perimeter = 0 +wipe_inside_depth = 50% +wipe_inside_end = 1 +wipe_inside_start = 0 +wipe_only_crossing = 1 +wipe_speed = 0 +z_offset = 0 +z_step = 0.005 + +[physical_printer:Local SV06] +host_type = octoprint +preset_name = Sovol SV06 +preset_names = "Sovol SV06" print_host = http://10.0.0.51 printer_technology = FFF printhost_apikey = @@ -3880,10 +4130,40 @@ printhost_port = printhost_ssl_ignore_revoke = 0 printhost_user = -[physical_printer:Local Plus] +[physical_printer:Local SV06 Plus] host_type = octoprint -preset_name = Sovol Sv06 Plus -preset_names = "Sovol Sv06 Plus" +preset_name = Sovol SV06 Plus +preset_names = "Sovol SV06 Plus" +print_host = http://10.0.0.51 +printer_technology = FFF +printhost_apikey = +printhost_authorization_type = key +printhost_cafile = +printhost_client_cert = +printhost_password = +printhost_port = +printhost_ssl_ignore_revoke = 0 +printhost_user = + +[physical_printer:Local SV07] +host_type = octoprint +preset_name = Sovol SV07 +preset_names = "Sovol SV07" +print_host = http://10.0.0.51 +printer_technology = FFF +printhost_apikey = +printhost_authorization_type = key +printhost_cafile = +printhost_client_cert = +printhost_password = +printhost_port = +printhost_ssl_ignore_revoke = 0 +printhost_user = + +[physical_printer:Local SV07 Plus] +host_type = octoprint +preset_name = Sovol SV07 Plus +preset_names = "Sovol SV07 Plus" print_host = http://10.0.0.51 printer_technology = FFF printhost_apikey = @@ -3896,9 +4176,9 @@ printhost_ssl_ignore_revoke = 0 printhost_user = [presets] -print = Ellis_Decorative_Standard_15mm3 +print = Ellis_Decorative_45_Degree_15mm3-CoreXY-Speeds sla_print = sla_material = -printer = Sovol Sv06 +printer = Sovol SV06 filament = eSun PLA+ Blue physical_printer = From 000b2ec51f49211d62eaaffdd9f420cedfbf362b Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 1 Dec 2023 14:10:40 -0500 Subject: [PATCH 02/39] Adjust PS config bundle. --- ...PrusaSlicer_config_bundle-SV06-SV07-All.ini | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini index 567f20f..1fa1569 100644 --- a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini +++ b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-12-01 at 18:05:53 UTC +# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-12-01 at 19:07:58 UTC [print:0.20mm QUALITY SV06 Ellis] avoid_crossing_curled_overhangs = 0 @@ -391,7 +391,7 @@ fill_pattern = grid first_layer_acceleration = 1000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 -first_layer_height = 0.25 +first_layer_height = 0.26 first_layer_speed = 30 first_layer_speed_over_raft = 30 fuzzy_skin = none @@ -564,7 +564,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.46 fill_angle = 45 fill_density = 10% -fill_pattern = monotonic +fill_pattern = rectilinear first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 @@ -741,7 +741,7 @@ extruder_clearance_radius = 20 extrusion_width = 0.46 fill_angle = 45 fill_density = 10% -fill_pattern = monotonic +fill_pattern = rectilinear first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 @@ -3221,7 +3221,7 @@ z_offset = 0 [physical_printer:Local SV06] host_type = octoprint -preset_name = Sovol SV06 +preset_name = preset_names = "Sovol SV06" print_host = http://10.0.0.51 printer_technology = FFF @@ -3235,7 +3235,7 @@ printhost_user = [physical_printer:Local SV06 Plus] host_type = octoprint -preset_name = Sovol SV06 Plus +preset_name = preset_names = "Sovol SV06 Plus" print_host = http://10.0.0.51 printer_technology = FFF @@ -3249,7 +3249,7 @@ printhost_user = [physical_printer:Local SV07] host_type = octoprint -preset_name = Sovol SV07 +preset_name = preset_names = "Sovol SV07" print_host = http://10.0.0.51 printer_technology = FFF @@ -3263,7 +3263,7 @@ printhost_user = [physical_printer:Local SV07 Plus] host_type = octoprint -preset_name = Sovol SV07 Plus +preset_name = preset_names = "Sovol SV07 Plus" print_host = http://10.0.0.51 printer_technology = FFF @@ -3276,7 +3276,7 @@ printhost_ssl_ignore_revoke = 0 printhost_user = [presets] -print = _Ellis_PIF_Standard_15mm3_CoreXY-Speeds +print = Ellis_PIF_Standard_15mm3 sla_print = sla_material = printer = Sovol SV06 From 5aafe60b55d02e456f8246b3624e0859f35c4ef6 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 1 Dec 2023 15:40:13 -0500 Subject: [PATCH 03/39] Adjust PS config bundle. --- ...rusaSlicer_config_bundle-SV06-SV07-All.ini | 366 +++++++++--------- 1 file changed, 183 insertions(+), 183 deletions(-) diff --git a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini index 1fa1569..7b1d491 100644 --- a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini +++ b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-12-01 at 19:07:58 UTC +# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-12-01 at 20:34:38 UTC [print:0.20mm QUALITY SV06 Ellis] avoid_crossing_curled_overhangs = 0 @@ -708,183 +708,6 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:_Ellis_Decorative_Standard_24mm3_CoreXY-Speeds] -avoid_crossing_curled_overhangs = 0 -avoid_crossing_perimeters = 0 -avoid_crossing_perimeters_max_detour = 0 -bottom_fill_pattern = monotoniclines -bottom_solid_layers = 3 -bottom_solid_min_thickness = 0.6 -bridge_acceleration = 5000 -bridge_angle = 0 -bridge_flow_ratio = 0.85 -bridge_speed = 140 -brim_separation = 0 -brim_type = outer_only -brim_width = 0 -compatible_printers = -compatible_printers_condition = -complete_objects = 0 -default_acceleration = 4000 -dont_support_bridges = 1 -draft_shield = disabled -elefant_foot_compensation = 0 -enable_dynamic_overhang_speeds = 0 -external_perimeter_acceleration = 1000 -external_perimeter_extrusion_width = 0.4 -external_perimeter_speed = 80 -external_perimeters_first = 0 -extra_perimeters = 0 -extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.46 -fill_angle = 45 -fill_density = 10% -fill_pattern = rectilinear -first_layer_acceleration = 2000 -first_layer_acceleration_over_raft = 0 -first_layer_extrusion_width = 0.5 -first_layer_height = 0.26 -first_layer_speed = 30 -first_layer_speed_over_raft = 30 -fuzzy_skin = none -fuzzy_skin_point_dist = 0.8 -fuzzy_skin_thickness = 0.3 -gap_fill_enabled = 1 -gap_fill_speed = 30 -gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 -gcode_substitutions = -infill_acceleration = 7000 -infill_anchor = 600% -infill_anchor_max = 400% -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.46 -infill_first = 0 -infill_overlap = 25% -infill_speed = 300 -inherits = -interface_shells = 0 -ironing = 0 -ironing_flowrate = 15% -ironing_spacing = 0.1 -ironing_speed = 15 -ironing_type = top -layer_height = 0.2 -max_print_speed = 300 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 24 -min_bead_width = 85% -min_feature_size = 25% -min_skirt_length = 20 -mmu_segmented_region_interlocking_depth = 0 -mmu_segmented_region_max_width = 0 -notes = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode -overhang_speed_0 = 75% -overhang_speed_1 = 80% -overhang_speed_2 = 90% -overhang_speed_3 = 100% -overhangs = 1 -perimeter_acceleration = 2000 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.46 -perimeter_generator = arachne -perimeter_speed = 150 -perimeters = 3 -post_process = -print_settings_id = Ellis - Decorative Standard (15mm³) -raft_contact_distance = 0.1 -raft_expansion = 1.5 -raft_first_layer_density = 90% -raft_first_layer_expansion = 3 -raft_layers = 0 -resolution = 0.0125 -seam_position = aligned -single_extruder_multi_material_priming = 1 -skirt_distance = 3 -skirt_height = 1 -skirts = 1 -slice_closing_radius = 0.049 -slicing_mode = regular -small_perimeter_speed = 30 -solid_infill_acceleration = 5000 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.56 -solid_infill_speed = 200 -spiral_vase = 0 -staggered_inner_seams = 0 -standby_temperature_delta = -5 -support_material = 1 -support_material_angle = 0 -support_material_auto = 1 -support_material_bottom_contact_distance = 0 -support_material_bottom_interface_layers = -1 -support_material_buildplate_only = 1 -support_material_closing_radius = 2 -support_material_contact_distance = 0.1 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 2 -support_material_interface_pattern = rectilinear -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100 -support_material_pattern = rectilinear -support_material_spacing = 3 -support_material_speed = 120 -support_material_style = organic -support_material_synchronize_layers = 0 -support_material_threshold = 30 -support_material_with_sheath = 0 -support_material_xy_spacing = 75% -support_tree_angle = 40 -support_tree_angle_slow = 25 -support_tree_branch_diameter = 2 -support_tree_branch_diameter_angle = 5 -support_tree_branch_diameter_double_wall = 3 -support_tree_branch_distance = 1 -support_tree_tip_diameter = 0.8 -support_tree_top_rate = 30% -thick_bridges = 0 -thin_walls = 1 -threads = 16 -top_fill_pattern = monotoniclines -top_infill_extrusion_width = 0.4 -top_solid_infill_acceleration = 2000 -top_solid_infill_speed = 60 -top_solid_layers = 5 -top_solid_min_thickness = 1 -travel_acceleration = 10000 -travel_speed = 300 -travel_speed_z = 0 -wall_distribution_count = 1 -wall_transition_angle = 10 -wall_transition_filter_deviation = 25% -wall_transition_length = 100% -wipe_tower = 0 -wipe_tower_bridging = 10 -wipe_tower_brim_width = 2 -wipe_tower_cone_angle = 0 -wipe_tower_extra_spacing = 100% -wipe_tower_extruder = 0 -wipe_tower_no_sparse_layers = 0 -wipe_tower_rotation_angle = 0 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - [print:_Ellis_PIF_Standard_15mm3_CoreXY-Speeds] avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 @@ -1062,7 +885,184 @@ wipe_tower_x = 180 wipe_tower_y = 140 xy_size_compensation = 0 -[print:_Ellis_PIF_Standard_24mm3_CoreXY-Speeds] +[print:__Ellis_Decorative_Standard_24mm3_CoreXY-Speeds] +avoid_crossing_curled_overhangs = 0 +avoid_crossing_perimeters = 0 +avoid_crossing_perimeters_max_detour = 0 +bottom_fill_pattern = monotoniclines +bottom_solid_layers = 3 +bottom_solid_min_thickness = 0.6 +bridge_acceleration = 5000 +bridge_angle = 0 +bridge_flow_ratio = 0.85 +bridge_speed = 140 +brim_separation = 0 +brim_type = outer_only +brim_width = 0 +compatible_printers = +compatible_printers_condition = +complete_objects = 0 +default_acceleration = 4000 +dont_support_bridges = 1 +draft_shield = disabled +elefant_foot_compensation = 0 +enable_dynamic_overhang_speeds = 0 +external_perimeter_acceleration = 1000 +external_perimeter_extrusion_width = 0.4 +external_perimeter_speed = 80 +external_perimeters_first = 0 +extra_perimeters = 0 +extra_perimeters_on_overhangs = 1 +extruder_clearance_height = 20 +extruder_clearance_radius = 20 +extrusion_width = 0.46 +fill_angle = 45 +fill_density = 10% +fill_pattern = rectilinear +first_layer_acceleration = 2000 +first_layer_acceleration_over_raft = 0 +first_layer_extrusion_width = 0.5 +first_layer_height = 0.26 +first_layer_speed = 30 +first_layer_speed_over_raft = 30 +fuzzy_skin = none +fuzzy_skin_point_dist = 0.8 +fuzzy_skin_thickness = 0.3 +gap_fill_enabled = 1 +gap_fill_speed = 30 +gcode_comments = 0 +gcode_label_objects = 1 +gcode_resolution = 0 +gcode_substitutions = +infill_acceleration = 7000 +infill_anchor = 600% +infill_anchor_max = 400% +infill_every_layers = 1 +infill_extruder = 1 +infill_extrusion_width = 0.46 +infill_first = 0 +infill_overlap = 25% +infill_speed = 300 +inherits = +interface_shells = 0 +ironing = 0 +ironing_flowrate = 15% +ironing_spacing = 0.1 +ironing_speed = 15 +ironing_type = top +layer_height = 0.2 +max_print_speed = 300 +max_volumetric_extrusion_rate_slope_negative = 0 +max_volumetric_extrusion_rate_slope_positive = 0 +max_volumetric_speed = 24 +min_bead_width = 85% +min_feature_size = 25% +min_skirt_length = 20 +mmu_segmented_region_interlocking_depth = 0 +mmu_segmented_region_max_width = 0 +notes = +only_retract_when_crossing_perimeters = 1 +ooze_prevention = 0 +output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode +overhang_speed_0 = 75% +overhang_speed_1 = 80% +overhang_speed_2 = 90% +overhang_speed_3 = 100% +overhangs = 1 +perimeter_acceleration = 2000 +perimeter_extruder = 1 +perimeter_extrusion_width = 0.46 +perimeter_generator = arachne +perimeter_speed = 150 +perimeters = 3 +post_process = +print_settings_id = Ellis - Decorative Standard (15mm³) +raft_contact_distance = 0.1 +raft_expansion = 1.5 +raft_first_layer_density = 90% +raft_first_layer_expansion = 3 +raft_layers = 0 +resolution = 0.0125 +seam_position = aligned +single_extruder_multi_material_priming = 1 +skirt_distance = 3 +skirt_height = 1 +skirts = 1 +slice_closing_radius = 0.049 +slicing_mode = regular +small_perimeter_speed = 30 +solid_infill_acceleration = 5000 +solid_infill_below_area = 0 +solid_infill_every_layers = 0 +solid_infill_extruder = 1 +solid_infill_extrusion_width = 0.56 +solid_infill_speed = 200 +spiral_vase = 0 +staggered_inner_seams = 0 +standby_temperature_delta = -5 +support_material = 1 +support_material_angle = 0 +support_material_auto = 1 +support_material_bottom_contact_distance = 0 +support_material_bottom_interface_layers = -1 +support_material_buildplate_only = 1 +support_material_closing_radius = 2 +support_material_contact_distance = 0.1 +support_material_enforce_layers = 0 +support_material_extruder = 1 +support_material_extrusion_width = 0 +support_material_interface_contact_loops = 0 +support_material_interface_extruder = 1 +support_material_interface_layers = 2 +support_material_interface_pattern = rectilinear +support_material_interface_spacing = 0.2 +support_material_interface_speed = 100 +support_material_pattern = rectilinear +support_material_spacing = 3 +support_material_speed = 120 +support_material_style = organic +support_material_synchronize_layers = 0 +support_material_threshold = 30 +support_material_with_sheath = 0 +support_material_xy_spacing = 75% +support_tree_angle = 40 +support_tree_angle_slow = 25 +support_tree_branch_diameter = 2 +support_tree_branch_diameter_angle = 5 +support_tree_branch_diameter_double_wall = 3 +support_tree_branch_distance = 1 +support_tree_tip_diameter = 0.8 +support_tree_top_rate = 30% +thick_bridges = 0 +thin_walls = 1 +threads = 16 +top_fill_pattern = monotoniclines +top_infill_extrusion_width = 0.4 +top_solid_infill_acceleration = 2000 +top_solid_infill_speed = 60 +top_solid_layers = 5 +top_solid_min_thickness = 1 +travel_acceleration = 10000 +travel_speed = 300 +travel_speed_z = 0 +wall_distribution_count = 1 +wall_transition_angle = 10 +wall_transition_filter_deviation = 25% +wall_transition_length = 100% +wipe_tower = 0 +wipe_tower_bridging = 10 +wipe_tower_brim_width = 2 +wipe_tower_cone_angle = 0 +wipe_tower_extra_spacing = 100% +wipe_tower_extruder = 0 +wipe_tower_no_sparse_layers = 0 +wipe_tower_rotation_angle = 0 +wipe_tower_width = 60 +wipe_tower_x = 180 +wipe_tower_y = 140 +xy_size_compensation = 0 + +[print:__Ellis_PIF_Standard_24mm3_CoreXY-Speeds] avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -3221,7 +3221,7 @@ z_offset = 0 [physical_printer:Local SV06] host_type = octoprint -preset_name = +preset_name = Sovol SV06 preset_names = "Sovol SV06" print_host = http://10.0.0.51 printer_technology = FFF @@ -3235,7 +3235,7 @@ printhost_user = [physical_printer:Local SV06 Plus] host_type = octoprint -preset_name = +preset_name = Sovol SV06 Plus preset_names = "Sovol SV06 Plus" print_host = http://10.0.0.51 printer_technology = FFF @@ -3249,7 +3249,7 @@ printhost_user = [physical_printer:Local SV07] host_type = octoprint -preset_name = +preset_name = Sovol SV07 preset_names = "Sovol SV07" print_host = http://10.0.0.51 printer_technology = FFF @@ -3263,7 +3263,7 @@ printhost_user = [physical_printer:Local SV07 Plus] host_type = octoprint -preset_name = +preset_name = Sovol SV07 Plus preset_names = "Sovol SV07 Plus" print_host = http://10.0.0.51 printer_technology = FFF From 916b739c33a2633bde24a1451fe1417db0983177 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 3 Dec 2023 00:35:28 -0500 Subject: [PATCH 04/39] Adjust preface. --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7404f17..86d1a73 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,9 @@ Watch for releases and updates. Please see this [discussion](https://github.com/ ## Preface -Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and _fully read all the documentation on this page_. Also note that Klipper is not a _must_, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience. +Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and fully read this documentation. Also note that Klipper is not a _must_, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience. + +In many ways, this entire repository can be considered _my opinion_ on the `3D printing experience` and this has been _my attempt_ to share that experience. Some factors, such as accuracy and user experience, have been at the forefront of my thoughts during this work. I hope you find this repository suitable. Cheers. [🔼 Back to top](#outline) @@ -84,7 +86,7 @@ Although I've made switching over to Klipper as easy as is possible, it can stil - Robert Redford's performance in _Spy Game (2001)_ was superb! - It is assumed that there is one instance of Klipper installed. If you have multiple instances of Klipper installed, via `KIAUH` for example, then this guide is not for you. You can still use all the configs of course, but the steps in this guide will likely not work for you. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. -- I would recommend searching for the word `NOTE` in this repository. There are roughly half a dozen short points amongst the various files that you should be aware of if you're using this configuration. +- I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of. [🔼 Back to top](#outline) From c82fbedcd77149df27a8a2a87e7272f8ff81cbf2 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 3 Dec 2023 04:44:10 -0500 Subject: [PATCH 05/39] Adjust comment in printer.cfg. --- printer.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/printer.cfg b/printer.cfg index 3fcf7de..8759420 100644 --- a/printer.cfg +++ b/printer.cfg @@ -156,8 +156,8 @@ z_hop_speed: 15 [bed_mesh] speed: 175 -mesh_min: 27, 6 # probe as close to origin as functionally possible -mesh_max: 222, 203 # (x.position_max - 1), (y.position_max - abs(y_offset)) +mesh_min: 27, 6 # probe as close to origin as possible while remaining fully on the bed +mesh_max: 222, 203 # (x.position_max - 1), (y.position_max - abs(y_offset)) ; probe as far as possible from the origin while remaining fully on the bed probe_count: 5,5 algorithm: bicubic fade_start: 1 From 767059c8f4587b4f7b855e48b7bdc91c828b6128 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 3 Dec 2023 12:02:10 -0500 Subject: [PATCH 06/39] Adjust preface. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 86d1a73..6310b2e 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Watch for releases and updates. Please see this [discussion](https://github.com/ Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and fully read this documentation. Also note that Klipper is not a _must_, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience. -In many ways, this entire repository can be considered _my opinion_ on the `3D printing experience` and this has been _my attempt_ to share that experience. Some factors, such as accuracy and user experience, have been at the forefront of my thoughts during this work. I hope you find this repository suitable. Cheers. +In many ways, this entire repository can be considered _my opinion_ on the `3D printing experience` and this has been _my attempt_ to share that experience. Some factors, such as accuracy, testing, and user experience, have been at the forefront of my thoughts during this work. I hope you find this repository suitable. Cheers. [🔼 Back to top](#outline) From 2d8e27d11934502d80e422b8025c3fd9998afdd3 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 8 Dec 2023 01:08:26 -0500 Subject: [PATCH 07/39] Adjust preface. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6310b2e..2cb983e 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ Watch for releases and updates. Please see this [discussion](https://github.com/ Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and fully read this documentation. Also note that Klipper is not a _must_, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience. -In many ways, this entire repository can be considered _my opinion_ on the `3D printing experience` and this has been _my attempt_ to share that experience. Some factors, such as accuracy, testing, and user experience, have been at the forefront of my thoughts during this work. I hope you find this repository suitable. Cheers. +In many ways, this entire repository can be considered _my opinion_ on the `3D printing experience` and this has been _my attempt_ to share that experience. Some factors, such as _accuracy_ and _testing_, have been at the forefront of my thoughts during this process. I hope you find this repository suitable. Cheers. [🔼 Back to top](#outline) From d4dc915c70951e271203a236ff62dfab279d89a1 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 8 Dec 2023 19:03:35 -0500 Subject: [PATCH 08/39] Adjust readme. --- README.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2cb983e..7ba9733 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,12 @@ I am creating these files for my personal use and cannot be held responsible for - 💥 This Klipper configuration is an _endpoint_, meaning that it contains **everything** that you could possibly need in order to have an excellent Klipper experience! 💥 - Filament runout sensor usage implemented. - Minimum configuration settings for `Mainsail` and `Fluidd`. -- Pre-configured configuration bundles based on the [Ellis SuperSlicer Print Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles) +- Pre-configured configuration bundles based on the [Ellis SuperSlicer Print Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles): - SuperSlicer - PrusaSlicer - - Printer profiles: SV06; SV06 Plus + - Printer profiles: SV06/Plus; SV07/Plus - Bed model and texture to use in SuperSlicer/PrusaSlicer. -- Macros +- Macros: - **Improved** mechanical gantry calibration/`G34` macro that provides the user audio feedback, and time to check the calibration. - Misc macros: `PRINT_START`, `CANCEL_PRINT`, `PRINT_END`, `PAUSE`, `RESUME`. - Parking macros (parks the printhead at various locations): `PARKFRONT`, `PARKFRONTLOW`, `PARKREAR`, `PARKCENTER`, `PARKBED`. @@ -215,9 +215,17 @@ But first, adjust your slicer. ## Adjust Your Slicer -💡 If you are using the config bundles found on this repo, you can skip this step. +🗒️ If you are using the config bundles found on this repo, you can skip this section. -You need to adjust the start and end gcode in your slicer. The relevant macros are `PRINT_START` and `PRINT_END`. Find instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code). +### Start G-Code + +It varies depending on your slicer. Find instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code). + +### End G-Code + +``` +PRINT_END +``` ### Line Purge From c4e8765a82d806d30731411257f41d2a7ba8304d Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 2 Jan 2024 17:15:21 -0500 Subject: [PATCH 09/39] Add how-to-update.md. --- misc/how-to-update.md | 73 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 misc/how-to-update.md diff --git a/misc/how-to-update.md b/misc/how-to-update.md new file mode 100644 index 0000000..961d276 --- /dev/null +++ b/misc/how-to-update.md @@ -0,0 +1,73 @@ +\*\* _Flashing the firmware is not required for any method_ + +## Should You Update? + +I treat this config like software, and like any piece of modern software, it will require periodic updates to fix issues, add features, improve functionality, etc. So, if you want to have the latest and greatest, I recommend you periodically pull the changes from this repo. + +### What Changes Should You Be Concerned With + +The only changes you need to be concerned with relate to the `.cfg` and `.conf` files; all changes to `.md` files (these are markdown files, the text that you see when you visit this repo) can be ignored. + +### Git Users + +If you do a `git diff origin/master --name-only` and it shows you that a `.cfg` file has changed, you might want to pull in those changes (but you don't have to). + +### Non-Git Users + +Unfortunately, there's no simple way for you to ascertain whether there have been changes. I simply recommend that you update your config via the instructions below from time to time. + +## How to Update + +There are three methods to accomplish this: + +1. The correct method, using `git`. +2. The mostly acceptable method, without using `git`. +3. The start-from-scratch method. _Recommended for non-git users and those who haven't made many changes to their configuration._ + +### The `git` method. + +⚠️ This method is only intended for those who already know how to use `git`. + +📝 In this example, I'm using the `master` branch which applies to SV06 users only. Be sure to use the appropriate branch for your printer. + +📝 The assumption is that you didn't change branches after the initial setup, so you are in `master`, and there are many untracked changes. + +1. `ssh` into your Klipper host. +2. `cd ~/printer_data/config` +3. `git checkout -b my-settings` +4. `git add .` +5. `git commit -m "Saving my settings."` +6. `git checkout master` +7. `git pull` +8. `git checkout my-settings` +9. `git merge master --no-ff --no-commit` +10. Deal with comparing and pulling in incoming changes from `master` using your favourite code editor. You can also do this from the command line via `git commit --interactive`, however, only advanced `git` users should attempt this, though it is easy enough. +11. Add all welcomed changes to the staging area, and discard all other changes. +12. `git commit -m "Update with upstream."` + +You should push your branch to your own fork of this repo. + +For any future updates, you can run through the same process again, however, you cannot re-create the `my-settings` branch as you did in `step 3`, because it already exists. Simply omit the `-b` flag in `step 3` next time you update. + +### The mostly acceptable method. + +This method has shortcomings, because it relies on the user's memory, and requires more manual edits. Perfectly functional method, however. + +1. Read all the documentation. +2. Backup your current configuration, essentially everything inside `~/printer_data/config`. +3. Repeat steps in [Download OSS Klipper Configuration](https://github.com/bassamanator/Sovol-SV06-firmware#download-oss-klipper-configuration), and [Adjust Configuration with MCU Path](https://github.com/bassamanator/Sovol-SV06-firmware#adjust-configuration-with-mcu-path). +4. Copy everything from `#*# <---------------------- SAVE_CONFIG ---------------------->` onward and paste into new `printer.cfg`, inclusive. +5. Copy any other changes you might have made into the new configuration. Maybe you had adjusted the size of your printer (`position_max`), or other such changes. + +### The start-from-scratch method. + +1. Delete the folder `~/printer_data/config`. +2. Recreate the folder `~/printer_data/config` via `mkdir ~/printer_data/config`. +3. Start the Klipper installation process starting from `Download OSS Klipper Configuration` in the appropriate branch. + +## Linux Tips + +- In linux, you can delete files via `rm fileName` and directories via `rmdir directoryName`. +- In linux, you can list files and folders via `ls -lah`. + +You are now up-to-date with this repo, and have added your personal settings on top. From 7903f7c253ed605a065d91cafad75074f5f570ff Mon Sep 17 00:00:00 2001 From: bassamanator Date: Sun, 14 Jan 2024 19:37:51 -0500 Subject: [PATCH 10/39] Adjust before you begin section. --- README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7ba9733..a0815e6 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,9 @@ I am creating these files for my personal use and cannot be held responsible for ## Stay Up-to-Date -${\normalsize{\textcolor{goldenrod}{\texttt{Star ⭐ this project}}}}$ +${\normalsize{\textcolor{goldenrod}{\texttt{Star ⭐ this project.}}}}$ -Watch for releases and updates. Please see this [discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/37). +Watch for [updates](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/37). github star @@ -73,18 +73,17 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p ## Before You Begin - This entire page is a **13 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. -- Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_ than they were before. Beginner's would be wise to go through the steps mentioned [here](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). Consider yourself warned. -- Follow the steps in order. -- If an error was reported at a step, do no proceed to the next step. -- It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a data USB cable. 💡 Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it's not possible to tell just by looking. +- ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). - [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. -- It is also assumed that the username on the host device is `pi`. If that is not the case, you will have to manually edit `moonraker.conf` and `cfgs/misc-macros.cfg` and change any mentions of `/home/pi` to `/home/yourUserName`. -- Klipper _must_ be installed on the host Raspberry Pi for everything to work. Easiest is to use a [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. Alternatively, you can install `Fluidd` or `Mainsail` via [KIAUH](https://github.com/th33xitus/kiauh). +- Follow the steps in order. If an error was reported at a step, do no proceed to the next step. +- It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a data USB cable. 💡 Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it is not possible to tell just by looking. +- It is also assumed that the username on the host device is `pi`. If that is not the case, edit `moonraker.conf` and `cfgs/misc-macros.cfg` to change any mentions of `/home/pi` to `/home/yourUserName`. +- Klipper _must_ be installed on the host beforehand. Easiest is to use [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest). [KIAUH](https://github.com/th33xitus/kiauh) is another option. - Klipper _must_ be up to date. - In `Fluidd`, you can do this from `Settings` > `Software Updates`. - In `Mainsail`, you can do this from `Machine` > `Update Manager`. - Robert Redford's performance in _Spy Game (2001)_ was superb! -- It is assumed that there is one instance of Klipper installed. If you have multiple instances of Klipper installed, via `KIAUH` for example, then this guide is not for you. You can still use all the configs of course, but the steps in this guide will likely not work for you. +- It is assumed that there is one instance of Klipper installed. If that is not the case, then the steps in this guide will not work _perfectly_ for you. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of. From 1386f8324080ef354a66f61a9f5d6515d199a125 Mon Sep 17 00:00:00 2001 From: bassamanator Date: Sun, 14 Jan 2024 20:34:24 -0500 Subject: [PATCH 11/39] Minor adjustments to instructions. --- README.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index a0815e6..b68ec96 100644 --- a/README.md +++ b/README.md @@ -125,10 +125,10 @@ Please note: ### Download OSS Klipper Configuration -You can choose _either_ of the 2 following methods. - #### Method 1: Clone the Repository +💡 Make sure `git` is installed (`sudo apt update && sudo apt install git`). + 1. `cd ~/printer_data/config` 2. Empty entire `~/printer_data/config` folder. - In linux, you can delete files via `rm fileName` and directories via `rmdir directoryName`. @@ -148,6 +148,8 @@ You can choose _either_ of the 2 following methods. ### Adjust Configuration with MCU Path +💡 Make sure the host and printer are connected via USB. + 1. Find what port the `mcu` (printer motherboard) is connected to via **one** of the following commands: - `ls /dev/serial/by-id/*` @@ -159,7 +161,7 @@ You can choose _either_ of the 2 following methods. 2. Adjust the `[mcu]` section in `printer.cfg` accordingly. ```yaml - # 🗒️ This is just an example + # 📝 This is just an example [mcu] serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 restart_method: command @@ -183,7 +185,7 @@ If the Klipper flash that you did earlier was successful, and you've done everyt 💡 I recommend no filament be loaded for any of these steps. -🗒️ You will be pasting/typing these commands into the `Mainsail`/`Fluidd` console. +📝 You will be pasting/typing these commands into the `Mainsail`/`Fluidd` console. 1. Check to see if `X` and `Y` max positions can be reached, and adjust `position_max`, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety. 1. `G28` @@ -214,7 +216,7 @@ But first, adjust your slicer. ## Adjust Your Slicer -🗒️ If you are using the config bundles found on this repo, you can skip this section. +📝 If you are using the config bundles found on this repo, you can skip this section. ### Start G-Code @@ -234,7 +236,7 @@ If you would like to print a purge line before your print starts, at the end of - `LINE_PURGE`; prints KAMP's purge line. ⚠️ Do not attempt to use without reading [this section](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging). ```yaml -# 🗒️ This is just an example Start G-Code +# 📝 This is just an example Start G-Code PRINT_START ... PURGE_LINE ``` @@ -355,9 +357,9 @@ The printhead is now parked front center waiting for you to insert filament. You ⚠️ If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash. -🗒️ The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. +📝 The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. -🗒️ `LINE_PURGE` is useable (on appropriate devices) even if KAMP is disabled. +📝 `LINE_PURGE` is useable (on appropriate devices) even if KAMP is disabled. This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. From bd91fdef8025eff0d503fc3305f91d3d98eff62f Mon Sep 17 00:00:00 2001 From: bassamanator Date: Sun, 14 Jan 2024 21:17:28 -0500 Subject: [PATCH 12/39] Adjust Directory Structure. --- README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b68ec96..cc3950b 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,7 @@ PURGE_LINE Please ⭐ star this repository! -If you found my work useful, buy me a [Ko-fi](https://ko-fi.com/bassamanator). +Support [open source](https://en.wikipedia.org/wiki/Open_source), and buy me a [Ko-fi](https://ko-fi.com/bassamanator). [🔼 Back to top](#outline) @@ -256,24 +256,25 @@ If you found my work useful, buy me a [ +- Items that can _optionally_ be deleted are marked with a 💠. + ```sh ├── cfgs/ ✅ -├── CODE_OF_CONDUCT.md ❌ -├── CONTRIBUTING.md ❌ -├── .github/ ❌ -├── .gitignore ❌ -├── images/ ❌ -├── LICENSE ❌ -├── misc/ ❌ +├── CODE_OF_CONDUCT.md 💠 +├── CONTRIBUTING.md 💠 +├── .git/ ✅❔ +├── .github/ 💠 +├── .gitignore ✅❔ +├── images/ 💠 +├── LICENSE 💠 +├── misc/ 💠 ├── moonraker.conf ✅ ├── osskc.cfg ✅ ├── printer.cfg ✅ -├── README.md ❌ -├── SECURITY.md ❌ -└── .vscode/ ❌ +├── README.md 💠 +├── SECURITY.md 💠 +└── .vscode/ 💠 ``` [🔼 Back to top](#outline) From e416117048d84186f022bcc81504c23904e88c0f Mon Sep 17 00:00:00 2001 From: bassamanator Date: Sun, 14 Jan 2024 21:30:33 -0500 Subject: [PATCH 13/39] Adjust FAQs. --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index cc3950b..3acd7a0 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p ## Before You Begin -- This entire page is a **13 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. +- This entire page is a **12 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. - ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). - [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. - Follow the steps in order. If an error was reported at a step, do no proceed to the next step. @@ -298,8 +298,6 @@ The printer will beep upon: - Upon `PRINT_END`. - `MECHANICAL_GANTRY_CALIBRATION`/`G34`. -Adjust behaviour according to your needs. - | File | `cfgs/misc-macros.cfg` | | -------- | -------------------------- | | Section | `[gcode_macro _globals]` | @@ -311,8 +309,6 @@ Adjust behaviour according to your needs. You can find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor). -Adjust behaviour according to your needs. - | File | `cfgs/misc-macros.cfg` | | -------- | ---------------------------------- | | Section | `[gcode_macro _globals]` | @@ -364,8 +360,6 @@ The printhead is now parked front center waiting for you to insert filament. You This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. -Adjust behaviour according to your needs. - | File | `cfgs/misc-macros.cfg` | | -------- | ------------------------ | | Section | `[gcode_macro _globals]` | From dd7600fd63f0665107e4c3be968b317a2e87d1e9 Mon Sep 17 00:00:00 2001 From: bassamanator Date: Tue, 16 Jan 2024 00:36:10 -0500 Subject: [PATCH 14/39] Adjust readme. --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 3acd7a0..00e5eb5 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p - This entire page is a **12 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. - ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). -- [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. +- ⚠️ [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. - Follow the steps in order. If an error was reported at a step, do no proceed to the next step. - It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a data USB cable. 💡 Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it is not possible to tell just by looking. - It is also assumed that the username on the host device is `pi`. If that is not the case, edit `moonraker.conf` and `cfgs/misc-macros.cfg` to change any mentions of `/home/pi` to `/home/yourUserName`. @@ -83,7 +83,7 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p - In `Fluidd`, you can do this from `Settings` > `Software Updates`. - In `Mainsail`, you can do this from `Machine` > `Update Manager`. - Robert Redford's performance in _Spy Game (2001)_ was superb! -- It is assumed that there is one instance of Klipper installed. If that is not the case, then the steps in this guide will not work _perfectly_ for you. +- It is assumed that there is one instance of Klipper installed. If that is not the case, the steps in this guide will not work _perfectly_ for you. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of. @@ -93,11 +93,11 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p ### Flash Firmware -💡 If you have already flashed klipper onto your motherboard in the past, you can skip this step. +💡 If you flashed Klipper onto your motherboard in the past, you can skip this step. Please note: -- For the sake of simplicity, I will refer to the klipper firmware file as `klipper.bin` even though the actual filename is something along the lines of `klipper-v0.11.0-148-g52f4e20c.bin`. +- For the sake of simplicity, I will refer to the firmware file as `klipper.bin` even though the actual filename is something along the lines of `klipper-v0.11.0-148-g52f4e20c.bin`. - The firmware file is located in the `misc` folder. - Flashing will only work if current firmware filename is _different from previous flashing procedure_. The `.bin` is also important. - You may find this [video](https://youtu.be/p6l253OJa34) useful. @@ -150,7 +150,7 @@ Please note: 💡 Make sure the host and printer are connected via USB. -1. Find what port the `mcu` (printer motherboard) is connected to via **one** of the following commands: +1. Find what port the `mcu` (printer motherboard) is connected to via _one_ of the following commands: - `ls /dev/serial/by-id/*` - `ls /dev/serial/by-path/*` @@ -169,7 +169,7 @@ Please note: 3. Do a `FIRMWARE_RESTART`. -If the Klipper flash that you did earlier was successful, and you've done everything else correctly, you should see no errors or warnings in the `Mainsail`/`Fluidd` dashboard. **Klipper has successfully been installed on your printer!** +If the Klipper flash that you did earlier was successful, and you've done everything else correctly, you should see no errors or warnings in the `Mainsail`/`Fluidd` dashboard. 🎉 **Your printer has been Klipperized!** 🎉 [🔼 Back to top](#outline) @@ -208,15 +208,15 @@ If the Klipper flash that you did earlier was successful, and you've done everyt 1. `DO_CREATE_MESH` 2. `SAVE_CONFIG` (once completed) -🏁 If you've made it here, then your printer has been Klipperized, and is ready to print! 🏁 +🏁 If you've made it here, then your Klipperized printer is ready to print! 🏁 -But first, adjust your slicer. +_But first_, adjust your slicer. [🔼 Back to top](#outline) ## Adjust Your Slicer -📝 If you are using the config bundles found on this repo, you can skip this section. +📝 If you are using the slicer bundles found on this repo, you can skip this section. ### Start G-Code From 49b3af64917ca8d1c64f7f8a1e5b51ab78feea49 Mon Sep 17 00:00:00 2001 From: bassamanator Date: Thu, 18 Jan 2024 02:25:51 -0500 Subject: [PATCH 15/39] Adjust FAQs. --- README.md | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 00e5eb5..73c8ef1 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p ## Before You Begin -- This entire page is a **12 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. +- This entire page is a **11 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. - ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). - ⚠️ [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. - Follow the steps in order. If an error was reported at a step, do no proceed to the next step. @@ -86,6 +86,7 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p - It is assumed that there is one instance of Klipper installed. If that is not the case, the steps in this guide will not work _perfectly_ for you. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of. + [🔼 Back to top](#outline) @@ -281,11 +282,23 @@ This repository contains many files and folders. Some are _necessary_ for this K ## FAQ +### What are some settings that I can change? + +| File | Section | +| ---------------------- | ------------------------ | +| `cfgs/misc-macros.cfg` | `[gcode_macro _globals]` | + +| Variable | Disable | Enable | Notes | +| ---------------------------------- | ------------- | ------------- | ------------------------------------------------------------------- | +| `variable_beeping_enabled` | `0` | `1` (default) | +| `variable_filament_sensor_enabled` | `0` (default) | `1` | +| `variable_kamp_enable` | `0` (default) | `1` | See [here](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging) | + ### How do I import a configuration bundle into SuperSlicer/PrusaSlicer? Please see this [discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/13). -### How do I print using SuperSlicer? +### How do I print using SuperSlicer/PrusaSlicer? Please see this [discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/14). @@ -298,24 +311,10 @@ The printer will beep upon: - Upon `PRINT_END`. - `MECHANICAL_GANTRY_CALIBRATION`/`G34`. -| File | `cfgs/misc-macros.cfg` | -| -------- | -------------------------- | -| Section | `[gcode_macro _globals]` | -| Variable | `variable_beeping_enabled` | -| Disable | `0` | -| Enable | `1` (default) | - ### I want to use a filament sensor. How do I set it up? You can find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor). -| File | `cfgs/misc-macros.cfg` | -| -------- | ---------------------------------- | -| Section | `[gcode_macro _globals]` | -| Variable | `variable_filament_sensor_enabled` | -| Disable | `0` (default) | -| Enable | `1` | - ### My filament runout sensor works, but I just started a print without any filament loaded. What gives? A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps. @@ -360,13 +359,6 @@ The printhead is now parked front center waiting for you to insert filament. You This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. -| File | `cfgs/misc-macros.cfg` | -| -------- | ------------------------ | -| Section | `[gcode_macro _globals]` | -| Variable | `variable_kamp_enable` | -| Disable | `0` (default) | -| Enable | `1` | - ### How do I use the `TEST_SPEED` macro? ⚠️ This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful. ☠️ **You have been warned** ☠️. From 971ae19cfa320956a7843eeb30905456b14c1608 Mon Sep 17 00:00:00 2001 From: bassamanator Date: Thu, 18 Jan 2024 02:32:48 -0500 Subject: [PATCH 16/39] Fix read time. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 73c8ef1..fff4d5c 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p ## Before You Begin -- This entire page is a **11 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. +- This entire page is a **9 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. - ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). - ⚠️ [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. - Follow the steps in order. If an error was reported at a step, do no proceed to the next step. From 5a8908a36c806bfad53848cd88fa0ac733d88f5a Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 1 Feb 2024 00:57:11 -0500 Subject: [PATCH 17/39] Adjust minor. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index fff4d5c..d038e61 100644 --- a/README.md +++ b/README.md @@ -284,6 +284,8 @@ This repository contains many files and folders. Some are _necessary_ for this K ### What are some settings that I can change? +Edit the relevant file according to your needs. + | File | Section | | ---------------------- | ------------------------ | | `cfgs/misc-macros.cfg` | `[gcode_macro _globals]` | From a24dc4e302e4103f40a864a8509a98b1effa1494 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 21 Feb 2024 02:53:13 -0500 Subject: [PATCH 18/39] Minor adjustment to KAMP line purge. --- cfgs/kamp/Line_Purge.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cfgs/kamp/Line_Purge.cfg b/cfgs/kamp/Line_Purge.cfg index d03c61f..4da1baf 100644 --- a/cfgs/kamp/Line_Purge.cfg +++ b/cfgs/kamp/Line_Purge.cfg @@ -60,7 +60,7 @@ gcode: {% if purge_y_origin > 0 %} - {action_respond_info("KAMP purge starting at {}, {} and purging {}mm of filament, requested flow rate is {}mm/s3.".format( + {action_respond_info("KAMP purge starting at {}, {} and purging {}mm of filament, requested flow rate is {}mm3/s.".format( (purge_x_center), (purge_y_origin), (purge_amount), @@ -69,7 +69,7 @@ gcode: {% else %} - {action_respond_info("KAMP purge starting at {}, {} and purging {}mm of filament, requested flow rate is {}mm/s3.".format( + {action_respond_info("KAMP purge starting at {}, {} and purging {}mm of filament, requested flow rate is {}mm3/s.".format( (purge_x_origin), (purge_y_center), (purge_amount), From 21994e3829cb6ad3814dda3c56fb4d34d35aabaa Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 22 Feb 2024 17:25:27 -0500 Subject: [PATCH 19/39] Add idle_timeout section. --- cfgs/misc-macros.cfg | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cfgs/misc-macros.cfg b/cfgs/misc-macros.cfg index 7d3af82..02727c0 100644 --- a/cfgs/misc-macros.cfg +++ b/cfgs/misc-macros.cfg @@ -1,3 +1,6 @@ +[idle_timeout] +timeout: 600 + [force_move] enable_force_move: True From b48ad8a8078418a9e9046b16da63cc42643d9cfd Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 8 Mar 2024 13:44:07 -0500 Subject: [PATCH 20/39] Adjust directory structure. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d038e61..41384d3 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ This repository contains many files and folders. Some are _necessary_ for this K ```sh +/home/pi/printer_data/config ├── cfgs/ ✅ ├── CODE_OF_CONDUCT.md 💠 ├── CONTRIBUTING.md 💠 From 46b946983baf0f6c91f6a70592645626430fc890 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 7 May 2024 01:17:21 -0400 Subject: [PATCH 21/39] Adjust PS config bundle: edit printer notes tab. --- misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini index 7b1d491..3ebbed6 100644 --- a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini +++ b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini @@ -1,4 +1,4 @@ -# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2023-12-01 at 20:34:38 UTC +# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2024-05-07 at 05:08:14 UTC [print:0.20mm QUALITY SV06 Ellis] avoid_crossing_curled_overhangs = 0 @@ -2943,7 +2943,7 @@ parking_pos_retraction = 92 pause_print_gcode = PAUSE print_host = printer_model = -printer_notes = +printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: 65.33 (actual 64.33)\n; Height: 25.87 (actual 24.87)\n printer_settings_id = Sovol Sv06 printer_technology = FFF printer_variant = 0.4 @@ -3024,7 +3024,7 @@ parking_pos_retraction = 92 pause_print_gcode = PAUSE print_host = printer_model = -printer_notes = +printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: 65.33 (actual 64.33)\n; Height: 34.85 (actual 33.85)\n; Values pulled from modes; you should verify for your unit.\n printer_settings_id = Sovol Sv06 printer_technology = FFF printer_variant = 0.4 @@ -3105,7 +3105,7 @@ parking_pos_retraction = 92 pause_print_gcode = PAUSE print_host = printer_model = -printer_notes = +printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: ??? (actual ???)\n; Height: ??? (actual ???)\n printer_settings_id = Sovol Sv06 printer_technology = FFF printer_variant = 0.4 @@ -3186,7 +3186,7 @@ parking_pos_retraction = 92 pause_print_gcode = PAUSE print_host = printer_model = -printer_notes = +printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: ??? (actual ???)\n; Height: ??? (actual ???)\n printer_settings_id = Sovol Sv06 printer_technology = FFF printer_variant = 0.4 From 2788b2f03a0d31ada34d72f453d0930b70dafd7f Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 15 May 2024 11:49:04 -0400 Subject: [PATCH 22/39] Adjust directory structure. --- README.md | 5 ++--- {images => misc/images}/cup-border.png | Bin {images => misc/images}/githubstar.gif | Bin {images => misc/images}/heart.gif | Bin {images => misc/images}/logo_white_stroke.png | Bin {images => misc/images}/make-menuconfig.png | Bin {images => misc/images}/party_blob.gif | Bin 7 files changed, 2 insertions(+), 3 deletions(-) rename {images => misc/images}/cup-border.png (100%) rename {images => misc/images}/githubstar.gif (100%) rename {images => misc/images}/heart.gif (100%) rename {images => misc/images}/logo_white_stroke.png (100%) rename {images => misc/images}/make-menuconfig.png (100%) rename {images => misc/images}/party_blob.gif (100%) diff --git a/README.md b/README.md index 41384d3..734e0ea 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ ${\normalsize{\textcolor{goldenrod}{\texttt{Star ⭐ this project.}}}}$ Watch for [updates](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/37). -github star +github star [🔼 Back to top](#outline) @@ -248,7 +248,7 @@ PURGE_LINE Please ⭐ star this repository! -Support [open source](https://en.wikipedia.org/wiki/Open_source), and buy me a [Ko-fi](https://ko-fi.com/bassamanator). +Support [open source](https://en.wikipedia.org/wiki/Open_source), and buy me a [Ko-fi](https://ko-fi.com/bassamanator). [🔼 Back to top](#outline) @@ -268,7 +268,6 @@ This repository contains many files and folders. Some are _necessary_ for this K ├── .git/ ✅❔ ├── .github/ 💠 ├── .gitignore ✅❔ -├── images/ 💠 ├── LICENSE 💠 ├── misc/ 💠 ├── moonraker.conf ✅ diff --git a/images/cup-border.png b/misc/images/cup-border.png similarity index 100% rename from images/cup-border.png rename to misc/images/cup-border.png diff --git a/images/githubstar.gif b/misc/images/githubstar.gif similarity index 100% rename from images/githubstar.gif rename to misc/images/githubstar.gif diff --git a/images/heart.gif b/misc/images/heart.gif similarity index 100% rename from images/heart.gif rename to misc/images/heart.gif diff --git a/images/logo_white_stroke.png b/misc/images/logo_white_stroke.png similarity index 100% rename from images/logo_white_stroke.png rename to misc/images/logo_white_stroke.png diff --git a/images/make-menuconfig.png b/misc/images/make-menuconfig.png similarity index 100% rename from images/make-menuconfig.png rename to misc/images/make-menuconfig.png diff --git a/images/party_blob.gif b/misc/images/party_blob.gif similarity index 100% rename from images/party_blob.gif rename to misc/images/party_blob.gif From d5e46edc5e22f03736f7be69625d17b8b295d25b Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 15 May 2024 14:06:51 -0400 Subject: [PATCH 23/39] Adjust FAQs: filament sensor, KAMP. --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 734e0ea..ecf69c3 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ I am creating these files for my personal use and cannot be held responsible for - Load/unload filament macros. - `PURGE_LINE` macro. - `TEST_SPEED` macro. Find instructions [here](#how-do-i-use-the-test_speed-macro). -- Klipper Adaptive Meshing & Purging (KAMP) integrated. Read about it [here](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging). +- Klipper Adaptive Meshing & Purging (KAMP) integrated. Read about it [here](#what-do-i-need-to-know-about-kamp). [🔼 Back to top](#outline) @@ -317,6 +317,8 @@ The printer will beep upon: You can find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor). +You can test the sensor via `QUERY_FILAMENT_SENSOR SENSOR=filament_sensor`. + ### My filament runout sensor works, but I just started a print without any filament loaded. What gives? A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps. @@ -349,7 +351,7 @@ The printhead is now parked front center waiting for you to insert filament. You - OR, you can push some filament by hand _making sure to first disengage the extruder's spring loaded arm_. 3. Hit resume in your Klipper dashboard. -### How do I enable KAMP (Klipper Adaptive Meshing & Purging)? +### What do I need to know about KAMP? ⚠️ No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero. @@ -361,6 +363,8 @@ The printhead is now parked front center waiting for you to insert filament. You This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. +Read [KAMP official docs](https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging) to learn more. + ### How do I use the `TEST_SPEED` macro? ⚠️ This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful. ☠️ **You have been warned** ☠️. From f27b569d0c16be6226833a225ea0535b65409d7c Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 15 May 2024 16:00:32 -0400 Subject: [PATCH 24/39] Add known issues section. --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index ecf69c3..1f21bb3 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ I am creating these files for my personal use and cannot be held responsible for - [Adjust Your Slicer](#adjust-your-slicer) - [Support Me](#support-me) - [Directory Structure](#directory-structure) +- [Known Issues](#known-issues) - [FAQ](#faq) - [Useful Resources](#useful-resources) - [Sovol Official Links](#sovol-official-links) @@ -280,6 +281,16 @@ This repository contains many files and folders. Some are _necessary_ for this K [🔼 Back to top](#outline) +## Known Issues + +### Sequential printing + +Cancelling a print with sequential printing will possibly lead to collisions with previously printed objects. + +In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances. + +[🔼 Back to top](#outline) + ## FAQ ### What are some settings that I can change? From c602f18e9836bb3c8f9dcf90157915d96ae5ffb1 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sat, 8 Jun 2024 18:45:02 -0400 Subject: [PATCH 25/39] Adjust known issues. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1f21bb3..710bf95 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ I am creating these files for my personal use and cannot be held responsible for - [Adjust Your Slicer](#adjust-your-slicer) - [Support Me](#support-me) - [Directory Structure](#directory-structure) -- [Known Issues](#known-issues) +- [Special Considerations](#special-considerations) - [FAQ](#faq) - [Useful Resources](#useful-resources) - [Sovol Official Links](#sovol-official-links) @@ -281,11 +281,11 @@ This repository contains many files and folders. Some are _necessary_ for this K [🔼 Back to top](#outline) -## Known Issues +## Special Considerations ### Sequential printing -Cancelling a print with sequential printing will possibly lead to collisions with previously printed objects. +If enabled, cancelling, or resuming a print from pause, could lead to collisions with previously printed objects. In order to prevent collisions, in your slicer, ensure that objects are printed from the back of the build plate to the front. In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances. From 4e3fc98cc75fddf25020c4521018903dd8e158e0 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Fri, 5 Jul 2024 23:50:44 -0400 Subject: [PATCH 26/39] Add fly-e3-pro-v3 branch to table. --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 710bf95..975a15c 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,11 @@ This branch contains the Klipper configuration and firmware for the **Sovol SV06 | ${\normalsize{\textcolor{darkturquoise}{\texttt{Sovol SV06}}}}$ | ⚡ ${\small{\textcolor{darkturquoise}{\texttt{YOU ARE HERE}}}}$ ⚡ | | Sovol SV06 Skr-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) | | Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) | +| Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* | | All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) | +\*\* _Maintained by [ElPainis](https://github.com/ElPainis)_ + I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk. ## Outline From acb6549a08324c623d76fddbdfd03dc0c2d25964 Mon Sep 17 00:00:00 2001 From: Bassam <61985779+bassamanator@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:44:51 -0400 Subject: [PATCH 27/39] Update README.md Special considerations. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 975a15c..c3adc75 100644 --- a/README.md +++ b/README.md @@ -292,6 +292,12 @@ If enabled, cancelling, or resuming a print from pause, could lead to collisions In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances. +## Renamed GCODE Commands + +### BED_MESH_CALIBRATE + +Renamed to `_BED_MESH_CALIBRATE`. + [🔼 Back to top](#outline) ## FAQ From efdfd869546d2a0e2050071a56d15671c6009f0a Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Mon, 12 Aug 2024 11:34:07 -0400 Subject: [PATCH 28/39] Fix kamp notes link. --- .vscode/settings.json | 1 + README.md | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 226a9c2..6b378fa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,6 +24,7 @@ "normalsize", "octahedroflake", "osskc", + "Painis", "PARKBED", "PARKCENTER", "PARKFRONT", diff --git a/README.md b/README.md index 7f73364..cecf447 100644 --- a/README.md +++ b/README.md @@ -310,11 +310,11 @@ Edit the relevant file according to your needs. | ---------------------- | ------------------------ | | `cfgs/misc-macros.cfg` | `[gcode_macro _globals]` | -| Variable | Disable | Enable | Notes | -| ---------------------------------- | ------------- | ------------- | ------------------------------------------------------------------- | +| Variable | Disable | Enable | Notes | +| ---------------------------------- | ------------- | ------------- | ---------------------------------------------- | | `variable_beeping_enabled` | `0` | `1` (default) | | `variable_filament_sensor_enabled` | `0` (default) | `1` | -| `variable_kamp_enable` | `0` (default) | `1` | See [here](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging) | +| `variable_kamp_enable` | `0` (default) | `1` | See [here](#what-do-i-need-to-know-about-kamp) | ### How do I import a configuration bundle into SuperSlicer/PrusaSlicer? From 116f6c9aa42e539ad9a7938e1b7decce1cef60d0 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 28 Aug 2024 23:01:20 -0400 Subject: [PATCH 29/39] Fix test_speed macro. --- cfgs/TEST_SPEED.cfg | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/cfgs/TEST_SPEED.cfg b/cfgs/TEST_SPEED.cfg index a8f1bd5..0137abd 100644 --- a/cfgs/TEST_SPEED.cfg +++ b/cfgs/TEST_SPEED.cfg @@ -1,10 +1,12 @@ # NOTE Find how to use instructions here: https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_speeds_accels.html +[gcode_macro TEST_SPEED] # Home, get position, throw around toolhead, home again. # If MCU stepper positions (first line in GET_POSITION) are greater than a full step different (your number of microsteps), then skipping occured. # We only measure to a full step to accomodate for endstop variance. # Example: TEST_SPEED SPEED=300 ACCEL=5000 ITERATIONS=10 -[gcode_macro TEST_SPEED] +description: Test for max speed and acceleration parameters for the printer. Procedure: Home -> ReadPositionFromMCU -> MovesToolhead@Vel&Accel -> Home -> ReadPositionfromMCU + gcode: # Speed {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} @@ -12,6 +14,8 @@ gcode: {% set iterations = params.ITERATIONS|default(5)|int %} # Acceleration {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} + # Minimum Cruise Ratio + {% set min_cruise_ratio = params.MIN_CRUISE_RATIO|default(0.5)|float %} # Bounding inset for large pattern (helps prevent slamming the toolhead into the sides after small skips, and helps to account for machines with imperfectly set dimensions) {% set bound = params.BOUND|default(20)|int %} # Size for small pattern box @@ -64,7 +68,11 @@ gcode: G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} # Set new limits - SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} + {% if printer.configfile.settings.printer.minimum_cruise_ratio is defined %} + SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} MINIMUM_CRUISE_RATIO={min_cruise_ratio} + {% else %} + SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} + {% endif %} {% for i in range(iterations) %} # Large pattern diagonals @@ -80,7 +88,7 @@ gcode: G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} - + # Small pattern diagonals G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} @@ -89,7 +97,7 @@ gcode: G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} - # Small patternbox + # Small pattern box G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} @@ -97,7 +105,11 @@ gcode: {% endfor %} # Restore max speed/accel/accel_to_decel to their configured values - SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} + {% if printer.configfile.settings.printer.minimum_cruise_ratio is defined %} + SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} MINIMUM_CRUISE_RATIO={printer.configfile.settings.printer.minimum_cruise_ratio} + {% else %} + SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} + {% endif %} # Re-home and get position again for comparison: M400 # Finish moves - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/66 @@ -109,4 +121,5 @@ gcode: GET_POSITION # Restore previous gcode state (absolute/relative, etc) - RESTORE_GCODE_STATE NAME=TEST_SPEED \ No newline at end of file + RESTORE_GCODE_STATE NAME=TEST_SPEED + \ No newline at end of file From 6b156cb9ae8c80be0bebe04cc5ab4e26c394fb5e Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 28 Aug 2024 23:33:07 -0400 Subject: [PATCH 30/39] Add notices to README. --- README.md | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index cecf447..65ea670 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,9 @@ Please note: - The firmware file is located in the `misc` folder. - Flashing will only work if current firmware filename is _different from previous flashing procedure_. The `.bin` is also important. - You may find this [video](https://youtu.be/p6l253OJa34) useful. -- ⚠️ Many users have reported having issues flashing Klipper using the Sovol microSD card. + +> [!WARNING] +> Many users have reported having issues flashing Klipper using the Sovol microSD card. #### 1. Prepare the microSD Card for Flashing with These Parameters @@ -124,7 +126,8 @@ Please note: 5. Turn on the printer and wait a minute (usually takes 10 seconds). 6. Turn off the printer and remove the microSD. -⏲️ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide. +> [!IMPORTANT] +> ⏲️ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide. [🔼 Back to top](#outline) @@ -190,7 +193,8 @@ If the Klipper flash that you did earlier was successful, and you've done everyt 💡 I recommend no filament be loaded for any of these steps. -📝 You will be pasting/typing these commands into the `Mainsail`/`Fluidd` console. +> [!NOTE] +> You will be pasting/typing these commands into the `Mainsail`/`Fluidd` console. 1. Check to see if `X` and `Y` max positions can be reached, and adjust `position_max`, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety. 1. `G28` @@ -221,7 +225,8 @@ _But first_, adjust your slicer. ## Adjust Your Slicer -📝 If you are using the slicer bundles found on this repo, you can skip this section. +> [!NOTE] +> If you are using the slicer bundles found on this repo, you can skip this section. ### Start G-Code @@ -238,7 +243,10 @@ PRINT_END If you would like to print a purge line before your print starts, at the end of your start gcode, on a new line, add one of the following: - `PURGE_LINE`; prints a standard purge line. -- `LINE_PURGE`; prints KAMP's purge line. ⚠️ Do not attempt to use without reading [this section](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging). +- `LINE_PURGE`; prints KAMP's purge line. + +> [!WARNING] +> Do not attempt to use `LINE_PURGE` without reading [this section](#what-do-i-need-to-know-about-kamp). ```yaml # 📝 This is just an example Start G-Code @@ -360,7 +368,8 @@ _If_ you have a working filament sensor, the same behaviour as `M600`/colour cha ### How do I resume a print after a colour change or filament runout? -⚠️ Do not disable the stepper motors during this process! +> [!WARNING] +> Do not disable the stepper motors during this process! The printhead is now parked front center waiting for you to insert filament. You will: @@ -373,13 +382,17 @@ The printhead is now parked front center waiting for you to insert filament. You ### What do I need to know about KAMP? -⚠️ No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero. +> [!WARNING] +> No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero. -⚠️ If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash. +> [!WARNING] +> If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash. -📝 The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. +> [!IMPORTANT] +> The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. -📝 `LINE_PURGE` is useable (on appropriate devices) even if KAMP is disabled. +> [!NOTE] +> `LINE_PURGE` is useable _on appropriate devices_ even if KAMP is disabled. This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. @@ -387,7 +400,8 @@ Read [KAMP official docs](https://github.com/kyleisah/Klipper-Adaptive-Meshing-P ### How do I use the `TEST_SPEED` macro? -⚠️ This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful. ☠️ **You have been warned** ☠️. +> [!WARNING] +> This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful. Find full instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_speeds_accels.html). From f174110561397db3fcbcbac13c95480e03d774cd Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Wed, 28 Aug 2024 23:50:38 -0400 Subject: [PATCH 31/39] Adjust before you begin section. --- .vscode/settings.json | 1 + README.md | 15 +++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6b378fa..a24b5b6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -31,6 +31,7 @@ "PARKFRONTLOW", "PARKREAR", "pico", + "Printables", "Prusa", "runout", "Sovol", diff --git a/README.md b/README.md index 65ea670..6a35a1f 100644 --- a/README.md +++ b/README.md @@ -77,10 +77,8 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p ## Before You Begin - This entire page is a **9 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. -- ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). -- ⚠️ [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. - Follow the steps in order. If an error was reported at a step, do no proceed to the next step. -- It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a data USB cable. 💡 Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it is not possible to tell just by looking. +- It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a _data_ USB cable. - It is also assumed that the username on the host device is `pi`. If that is not the case, edit `moonraker.conf` and `cfgs/misc-macros.cfg` to change any mentions of `/home/pi` to `/home/yourUserName`. - Klipper _must_ be installed on the host beforehand. Easiest is to use [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest). [KIAUH](https://github.com/th33xitus/kiauh) is another option. - Klipper _must_ be up to date. @@ -90,7 +88,16 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p - It is assumed that there is one instance of Klipper installed. If that is not the case, the steps in this guide will not work _perfectly_ for you. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of. - +- Consider [these](https://github.com/bassamanator/everything-sovol-sv06/blob/main/parts/README.md#printed-upgrades) printable parts, and also see my [Printables](https://www.printables.com/@bassamanator) page. + +> [!TIP] +> Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it is not possible to tell just by looking. + +> [!CAUTION] +> Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md). + +> [!CAUTION] +> [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin. [🔼 Back to top](#outline) From 7dba6deed67e3b29bf8e238aa33c1840a00521f3 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Mon, 2 Sep 2024 14:13:48 -0400 Subject: [PATCH 32/39] Add new klipper-v0.12.0-289-g08a1c9f1.bin, latest. --- .../klipper-v0.12.0-10-gea2f6bc0.bin | Bin misc/klipper-v0.12.0-289-g08a1c9f1.bin | Bin 0 -> 32664 bytes 2 files changed, 0 insertions(+), 0 deletions(-) rename misc/{ => firmware-outdated}/klipper-v0.12.0-10-gea2f6bc0.bin (100%) create mode 100755 misc/klipper-v0.12.0-289-g08a1c9f1.bin diff --git a/misc/klipper-v0.12.0-10-gea2f6bc0.bin b/misc/firmware-outdated/klipper-v0.12.0-10-gea2f6bc0.bin similarity index 100% rename from misc/klipper-v0.12.0-10-gea2f6bc0.bin rename to misc/firmware-outdated/klipper-v0.12.0-10-gea2f6bc0.bin diff --git a/misc/klipper-v0.12.0-289-g08a1c9f1.bin b/misc/klipper-v0.12.0-289-g08a1c9f1.bin new file mode 100755 index 0000000000000000000000000000000000000000..70a66bfb299979891066025c0f263fa234fff5e1 GIT binary patch literal 32664 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≠h>z6~(EVSpngz<-c~kc1fa76Og>1`=k{ zUk3YLMVQJTxQ38K8RenpsU6T_O#0D1UE&P=S*X5Tge1X~ANA293Hj0XLC<5<*M<~O zXnUgP_W{@oCCx;$0xiQR51kL}iVzZosk}ZYPnKc-6(|pVRv`!VNA;%xomYz9S6wUb zBG4OvmS@tRQi6~+G3noO9U&<&>6Zk16&d;yA-@{zS65=t=zP-*^;3p90i6}%fRFkn z*v!;^m<)J#j?o{-fghL$b!L=@&QD&@-dmaEQQt}181{yNd_1&|DkFaY(5T-JH75I> zK!0v$$fNVBMhQYvXUKbkJnF+^2UGoqp?nR7{b+mXL;Gn0{a^dngS|VM=s=*UjQSk{ zdDPFN78Cz;CPLC?qFI67#pwV2AdmVrq%q~sZU-F<`^U(>TCKp*vx1z^nB94hmhz@?T7BYFkrH$1LO@E^+(5RDah|((vR+SFk;fr zU5}8Ane?;Vhi?cm=||t~H)WDfse^AFGRYqS`Mpf?=w1eMCixD~zmG}21LQ53_#0{w zk|m=(Xi&d!sJ|7Hz54L%&zea;`s~q$DZe}9w`J0=^#CF5XVjkx`p{>Gc1-epAaBnk zUj_0GjPlUyGWsmgk!ijRZ2CQQ&=8Ci^blN3v1^FMtsxG-hFtJD1C-B;T|*(<8Vch9 z@d%B8@&Sn`ACQdl0l67`SyVsJa;Sd5ji`P=c~n0Mp;1vjpccvp)JFM$yBK_a248@| o7i91^0H2In1_w9H?Q1avafj;y#7_cGq7Qwy6%G-IqXCWo58& Date: Wed, 11 Sep 2024 20:07:05 -0400 Subject: [PATCH 33/39] Delete misc/marlin-SV06V2.0.0A_2.24.bin --- misc/marlin-SV06V2.0.0A_2.24.bin | Bin 233988 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 misc/marlin-SV06V2.0.0A_2.24.bin diff --git a/misc/marlin-SV06V2.0.0A_2.24.bin b/misc/marlin-SV06V2.0.0A_2.24.bin deleted file mode 100644 index fd450efe132bf83c46746abc355d562b68e12516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233988 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 z 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
  • P|yhg3)Ed}n)`~P!pS_F50-~axe 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 From 8c3d4a7dd804cf382e982bc26af95ca62b181857 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 3 Oct 2024 00:23:53 -0400 Subject: [PATCH 34/39] Adjust gitignore. --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index c90eda7..b3f5c32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ printer-*_*.cfg .moonraker.conf.bkp .directory +.venv +__pycache__ +crowsnest.conf.* From f29a29fc843a063df5f9fc885d89db55a1cb7551 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 24 Oct 2024 04:24:40 -0400 Subject: [PATCH 35/39] Adjust styling. --- README.md | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 6a35a1f..3a1c989 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,23 @@ -# 🚨 _One-Stop-Shop_ Klipper Configuration +

    +Please consider +donating to +support my open source work ❤️ +

    -This branch contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer. +# One Stop Shop Klipper Configuration -| Printer | Branch | -| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -| ${\normalsize{\textcolor{darkturquoise}{\texttt{Sovol SV06}}}}$ | ⚡ ${\small{\textcolor{darkturquoise}{\texttt{YOU ARE HERE}}}}$ ⚡ | -| Sovol SV06 Skr-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) | -| Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) | -| Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* | -| All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) | +| Printer | Branch | +| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| ${\normalsize{\textcolor{darkturquoise}{\text{Sovol SV06}}}}$ | ⚡ ${\scriptsize{\textcolor{darkturquoise}{\text{YOU ARE HERE}}}}$ ⚡ | +| Sovol SV06 Skr-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) | +| Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) | +| Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* | +| All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) | -\*\* _Maintained by [ElPainis](https://github.com/ElPainis)_ +${\scriptsize{** Maintained by ElPainis}}$ -I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk. +> [!WARNING] +> I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk. ## Outline @@ -43,7 +48,7 @@ I am creating these files for my personal use and cannot be held responsible for - Pre-configured configuration bundles based on the [Ellis SuperSlicer Print Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles): - SuperSlicer - PrusaSlicer - - Printer profiles: SV06/Plus; SV07/Plus + - Printer profiles: `SV06/Plus`; `SV07/Plus` - Bed model and texture to use in SuperSlicer/PrusaSlicer. - Macros: - **Improved** mechanical gantry calibration/`G34` macro that provides the user audio feedback, and time to check the calibration. From bb4dd6a40349e4a406f3ab8841bab2dda375defc Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 24 Oct 2024 04:30:45 -0400 Subject: [PATCH 36/39] Adjust styling. --- .vscode/settings.json | 2 ++ README.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a24b5b6..46bdbfe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -34,8 +34,10 @@ "Printables", "Prusa", "runout", + "scriptsize", "Sovol", "textcolor", + "textit", "texttt" ], "[markdown]": { diff --git a/README.md b/README.md index 3a1c989..8d92a42 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ support my open source work ❤️ | Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* | | All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) | -${\scriptsize{** Maintained by ElPainis}}$ +${\small{\textit{** Maintained by ElPainis}}}$ > [!WARNING] > I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk. From cf931af5cb12f0a742a31840bdec01267fb0c990 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Sun, 24 Nov 2024 23:48:49 -0500 Subject: [PATCH 37/39] New PrusaSlicer config bundle. --- ...rusaSlicer_config_bundle-SV06-SV07-All.ini | 1509 +++++++++-------- 1 file changed, 828 insertions(+), 681 deletions(-) diff --git a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini index 3ebbed6..f887705 100644 --- a/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini +++ b/misc/PrusaSlicer_config_bundle-SV06-SV07-All.ini @@ -1,6 +1,7 @@ -# generated by PrusaSlicer 2.6.1+linux-x64-GTK3 on 2024-05-07 at 05:08:14 UTC +# generated by PrusaSlicer 2.8.1+linux-x64-GTK3 on 2024-11-25 at 04:44:06 UTC [print:0.20mm QUALITY SV06 Ellis] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -46,7 +47,7 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 +gcode_label_objects = octoprint gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 3500 @@ -76,6 +77,7 @@ min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = {input_filename_base}_{layer_height}mm_{printing_filament_types}_{printer_model}_{print_time}.gcode @@ -150,9 +152,9 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 15% thick_bridges = 1 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 +top_one_perimeter_type = none top_solid_infill_acceleration = 1000 top_solid_infill_speed = 60 top_solid_layers = 3 @@ -165,9 +167,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -178,6 +182,7 @@ wipe_tower_y = 125 xy_size_compensation = 0 [print:Ellis_Decorative_Standard_15mm3] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -188,7 +193,7 @@ bridge_acceleration = 3000 bridge_angle = 0 bridge_flow_ratio = 0.85 bridge_speed = 140 -brim_separation = 0 +brim_separation = 0.2 brim_type = outer_only brim_width = 0 compatible_printers = @@ -197,21 +202,21 @@ complete_objects = 0 default_acceleration = 3500 dont_support_bridges = 1 draft_shield = disabled -elefant_foot_compensation = 0 +elefant_foot_compensation = 0.1 enable_dynamic_overhang_speeds = 0 -external_perimeter_acceleration = 750 +external_perimeter_acceleration = 1000 external_perimeter_extrusion_width = 0.4 external_perimeter_speed = 80 external_perimeters_first = 0 -extra_perimeters = 0 +extra_perimeters = 1 extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 +extruder_clearance_height = 26 +extruder_clearance_radius = 66 extrusion_width = 0.46 fill_angle = 45 fill_density = 10% -fill_pattern = rectilinear -first_layer_acceleration = 1000 +fill_pattern = gyroid +first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 first_layer_height = 0.26 @@ -223,8 +228,8 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 +gcode_label_objects = firmware +gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 3500 infill_anchor = 600% @@ -253,6 +258,7 @@ min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode @@ -261,20 +267,20 @@ overhang_speed_1 = 80% overhang_speed_2 = 90% overhang_speed_3 = 100% overhangs = 1 -perimeter_acceleration = 1000 +perimeter_acceleration = 2000 perimeter_extruder = 1 perimeter_extrusion_width = 0.46 perimeter_generator = arachne perimeter_speed = 150 perimeters = 3 post_process = -print_settings_id = Ellis - Decorative Standard (15mm³) +print_settings_id = Ellis - Decorative Standard (24mm³) raft_contact_distance = 0.1 raft_expansion = 1.5 raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 -resolution = 0.0125 +resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -299,7 +305,7 @@ support_material_bottom_contact_distance = 0 support_material_bottom_interface_layers = -1 support_material_buildplate_only = 1 support_material_closing_radius = 2 -support_material_contact_distance = 0.1 +support_material_contact_distance = 0.2 support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 @@ -327,10 +333,10 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 30% thick_bridges = 0 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 -top_solid_infill_acceleration = 1000 +top_one_perimeter_type = top +top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 top_solid_min_thickness = 1 @@ -342,9 +348,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -352,9 +360,10 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_size_compensation = -0.1 [print:Ellis_PIF_Standard_15mm3] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -365,7 +374,7 @@ bridge_acceleration = 3000 bridge_angle = 0 bridge_flow_ratio = 0.85 bridge_speed = 140 -brim_separation = 0 +brim_separation = 0.2 brim_type = outer_only brim_width = 0 compatible_printers = @@ -374,21 +383,21 @@ complete_objects = 0 default_acceleration = 3500 dont_support_bridges = 1 draft_shield = disabled -elefant_foot_compensation = 0 +elefant_foot_compensation = 0.1 enable_dynamic_overhang_speeds = 0 -external_perimeter_acceleration = 750 +external_perimeter_acceleration = 1000 external_perimeter_extrusion_width = 0.4 external_perimeter_speed = 80 external_perimeters_first = 0 -extra_perimeters = 0 +extra_perimeters = 1 extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 +extruder_clearance_height = 26 +extruder_clearance_radius = 66 extrusion_width = 0.46 fill_angle = 45 fill_density = 40% -fill_pattern = grid -first_layer_acceleration = 1000 +fill_pattern = gyroid +first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 first_layer_height = 0.26 @@ -400,8 +409,8 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 +gcode_label_objects = firmware +gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 3500 infill_anchor = 600% @@ -430,6 +439,7 @@ min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode @@ -438,20 +448,20 @@ overhang_speed_1 = 80% overhang_speed_2 = 90% overhang_speed_3 = 100% overhangs = 1 -perimeter_acceleration = 1000 +perimeter_acceleration = 2000 perimeter_extruder = 1 perimeter_extrusion_width = 0.4 perimeter_generator = arachne perimeter_speed = 150 perimeters = 4 post_process = -print_settings_id = Ellis - PIF Standard (15mm³) +print_settings_id = Ellis - PIF Standard (24mm³) raft_contact_distance = 0.1 raft_expansion = 1.5 raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 -resolution = 0.0125 +resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -469,14 +479,14 @@ solid_infill_speed = 200 spiral_vase = 0 staggered_inner_seams = 0 standby_temperature_delta = -5 -support_material = 0 +support_material = 1 support_material_angle = 0 support_material_auto = 1 support_material_bottom_contact_distance = 0 support_material_bottom_interface_layers = -1 support_material_buildplate_only = 1 support_material_closing_radius = 2 -support_material_contact_distance = 0.1 +support_material_contact_distance = 0.2 support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 @@ -504,10 +514,10 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 30% thick_bridges = 0 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 -top_solid_infill_acceleration = 1000 +top_one_perimeter_type = top +top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 top_solid_min_thickness = 1 @@ -519,9 +529,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -529,9 +541,10 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_size_compensation = -0.1 -[print:_Ellis_Decorative_Standard_15mm3_CoreXY-Speeds] +[print:_Ellis_Decorative_Standard_17mm3] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -542,7 +555,7 @@ bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 0.85 bridge_speed = 140 -brim_separation = 0 +brim_separation = 0.2 brim_type = outer_only brim_width = 0 compatible_printers = @@ -551,20 +564,20 @@ complete_objects = 0 default_acceleration = 4000 dont_support_bridges = 1 draft_shield = disabled -elefant_foot_compensation = 0 +elefant_foot_compensation = 0.1 enable_dynamic_overhang_speeds = 0 external_perimeter_acceleration = 1000 external_perimeter_extrusion_width = 0.4 external_perimeter_speed = 80 external_perimeters_first = 0 -extra_perimeters = 0 +extra_perimeters = 1 extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 +extruder_clearance_height = 26 +extruder_clearance_radius = 66 extrusion_width = 0.46 fill_angle = 45 fill_density = 10% -fill_pattern = rectilinear +fill_pattern = gyroid first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 @@ -577,8 +590,8 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 +gcode_label_objects = firmware +gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 7000 infill_anchor = 600% @@ -600,13 +613,14 @@ layer_height = 0.2 max_print_speed = 300 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 15 +max_volumetric_speed = 17 min_bead_width = 85% min_feature_size = 25% min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode @@ -622,13 +636,13 @@ perimeter_generator = arachne perimeter_speed = 150 perimeters = 3 post_process = -print_settings_id = Ellis - Decorative Standard (15mm³) +print_settings_id = Ellis - Decorative Standard (24mm³) raft_contact_distance = 0.1 raft_expansion = 1.5 raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 -resolution = 0.0125 +resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -653,7 +667,7 @@ support_material_bottom_contact_distance = 0 support_material_bottom_interface_layers = -1 support_material_buildplate_only = 1 support_material_closing_radius = 2 -support_material_contact_distance = 0.1 +support_material_contact_distance = 0.2 support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 @@ -681,9 +695,9 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 30% thick_bridges = 0 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 +top_one_perimeter_type = top top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 @@ -696,9 +710,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -706,9 +722,10 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_size_compensation = -0.1 -[print:_Ellis_PIF_Standard_15mm3_CoreXY-Speeds] +[print:_Ellis_PIF_Standard_17mm3] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -719,7 +736,7 @@ bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 0.85 bridge_speed = 140 -brim_separation = 0 +brim_separation = 0.2 brim_type = outer_only brim_width = 0 compatible_printers = @@ -728,20 +745,20 @@ complete_objects = 0 default_acceleration = 4000 dont_support_bridges = 1 draft_shield = disabled -elefant_foot_compensation = 0 +elefant_foot_compensation = 0.1 enable_dynamic_overhang_speeds = 0 external_perimeter_acceleration = 1000 external_perimeter_extrusion_width = 0.4 external_perimeter_speed = 80 external_perimeters_first = 0 -extra_perimeters = 0 +extra_perimeters = 1 extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 +extruder_clearance_height = 26 +extruder_clearance_radius = 66 extrusion_width = 0.46 fill_angle = 45 fill_density = 40% -fill_pattern = grid +fill_pattern = gyroid first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 @@ -754,8 +771,8 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 +gcode_label_objects = firmware +gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 7000 infill_anchor = 600% @@ -777,13 +794,14 @@ layer_height = 0.2 max_print_speed = 300 max_volumetric_extrusion_rate_slope_negative = 0 max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 15 +max_volumetric_speed = 17 min_bead_width = 85% min_feature_size = 25% min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode @@ -799,13 +817,13 @@ perimeter_generator = arachne perimeter_speed = 150 perimeters = 4 post_process = -print_settings_id = Ellis - PIF Standard (15mm³) +print_settings_id = Ellis - PIF Standard (24mm³) raft_contact_distance = 0.1 raft_expansion = 1.5 raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 -resolution = 0.0125 +resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -823,14 +841,14 @@ solid_infill_speed = 200 spiral_vase = 0 staggered_inner_seams = 0 standby_temperature_delta = -5 -support_material = 0 +support_material = 1 support_material_angle = 0 support_material_auto = 1 support_material_bottom_contact_distance = 0 support_material_bottom_interface_layers = -1 support_material_buildplate_only = 1 support_material_closing_radius = 2 -support_material_contact_distance = 0.1 +support_material_contact_distance = 0.2 support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 @@ -858,9 +876,9 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 30% thick_bridges = 0 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 +top_one_perimeter_type = top top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 @@ -873,9 +891,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -883,9 +903,10 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_size_compensation = -0.1 -[print:__Ellis_Decorative_Standard_24mm3_CoreXY-Speeds] +[print:__Ellis_Decorative_Standard_24mm3] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -896,7 +917,7 @@ bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 0.85 bridge_speed = 140 -brim_separation = 0 +brim_separation = 0.2 brim_type = outer_only brim_width = 0 compatible_printers = @@ -905,20 +926,20 @@ complete_objects = 0 default_acceleration = 4000 dont_support_bridges = 1 draft_shield = disabled -elefant_foot_compensation = 0 +elefant_foot_compensation = 0.1 enable_dynamic_overhang_speeds = 0 external_perimeter_acceleration = 1000 external_perimeter_extrusion_width = 0.4 external_perimeter_speed = 80 external_perimeters_first = 0 -extra_perimeters = 0 +extra_perimeters = 1 extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 +extruder_clearance_height = 26 +extruder_clearance_radius = 66 extrusion_width = 0.46 fill_angle = 45 fill_density = 10% -fill_pattern = rectilinear +fill_pattern = gyroid first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 @@ -931,8 +952,8 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 +gcode_label_objects = firmware +gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 7000 infill_anchor = 600% @@ -961,6 +982,7 @@ min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode @@ -976,13 +998,13 @@ perimeter_generator = arachne perimeter_speed = 150 perimeters = 3 post_process = -print_settings_id = Ellis - Decorative Standard (15mm³) +print_settings_id = Ellis - Decorative Standard (24mm³) raft_contact_distance = 0.1 raft_expansion = 1.5 raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 -resolution = 0.0125 +resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -1007,7 +1029,7 @@ support_material_bottom_contact_distance = 0 support_material_bottom_interface_layers = -1 support_material_buildplate_only = 1 support_material_closing_radius = 2 -support_material_contact_distance = 0.1 +support_material_contact_distance = 0.2 support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 @@ -1035,9 +1057,9 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 30% thick_bridges = 0 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 +top_one_perimeter_type = top top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 @@ -1050,9 +1072,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -1060,9 +1084,10 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_size_compensation = -0.1 -[print:__Ellis_PIF_Standard_24mm3_CoreXY-Speeds] +[print:__Ellis_PIF_Standard_24mm3] +arc_fitting = disabled avoid_crossing_curled_overhangs = 0 avoid_crossing_perimeters = 0 avoid_crossing_perimeters_max_detour = 0 @@ -1073,7 +1098,7 @@ bridge_acceleration = 5000 bridge_angle = 0 bridge_flow_ratio = 0.85 bridge_speed = 140 -brim_separation = 0 +brim_separation = 0.2 brim_type = outer_only brim_width = 0 compatible_printers = @@ -1082,20 +1107,20 @@ complete_objects = 0 default_acceleration = 4000 dont_support_bridges = 1 draft_shield = disabled -elefant_foot_compensation = 0 +elefant_foot_compensation = 0.1 enable_dynamic_overhang_speeds = 0 external_perimeter_acceleration = 1000 external_perimeter_extrusion_width = 0.4 external_perimeter_speed = 80 external_perimeters_first = 0 -extra_perimeters = 0 +extra_perimeters = 1 extra_perimeters_on_overhangs = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 +extruder_clearance_height = 26 +extruder_clearance_radius = 66 extrusion_width = 0.46 fill_angle = 45 fill_density = 40% -fill_pattern = grid +fill_pattern = gyroid first_layer_acceleration = 2000 first_layer_acceleration_over_raft = 0 first_layer_extrusion_width = 0.5 @@ -1108,8 +1133,8 @@ fuzzy_skin_thickness = 0.3 gap_fill_enabled = 1 gap_fill_speed = 30 gcode_comments = 0 -gcode_label_objects = 1 -gcode_resolution = 0 +gcode_label_objects = firmware +gcode_resolution = 0.0125 gcode_substitutions = infill_acceleration = 7000 infill_anchor = 600% @@ -1138,6 +1163,7 @@ min_skirt_length = 20 mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = +only_one_perimeter_first_layer = 0 only_retract_when_crossing_perimeters = 1 ooze_prevention = 0 output_filename_format = [input_filename_base]-[printer_settings_id]-[filament_settings_id].gcode @@ -1153,13 +1179,13 @@ perimeter_generator = arachne perimeter_speed = 150 perimeters = 4 post_process = -print_settings_id = Ellis - PIF Standard (15mm³) +print_settings_id = Ellis - PIF Standard (24mm³) raft_contact_distance = 0.1 raft_expansion = 1.5 raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 -resolution = 0.0125 +resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -1177,14 +1203,14 @@ solid_infill_speed = 200 spiral_vase = 0 staggered_inner_seams = 0 standby_temperature_delta = -5 -support_material = 0 +support_material = 1 support_material_angle = 0 support_material_auto = 1 support_material_bottom_contact_distance = 0 support_material_bottom_interface_layers = -1 support_material_buildplate_only = 1 support_material_closing_radius = 2 -support_material_contact_distance = 0.1 +support_material_contact_distance = 0.2 support_material_enforce_layers = 0 support_material_extruder = 1 support_material_extrusion_width = 0 @@ -1212,9 +1238,9 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 30% thick_bridges = 0 thin_walls = 1 -threads = 16 top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.4 +top_one_perimeter_type = top top_solid_infill_acceleration = 2000 top_solid_infill_speed = 60 top_solid_layers = 5 @@ -1227,9 +1253,11 @@ wall_transition_angle = 10 wall_transition_filter_deviation = 25% wall_transition_length = 100% wipe_tower = 0 +wipe_tower_acceleration = 0 wipe_tower_bridging = 10 wipe_tower_brim_width = 2 wipe_tower_cone_angle = 0 +wipe_tower_extra_flow = 100% wipe_tower_extra_spacing = 100% wipe_tower_extruder = 0 wipe_tower_no_sparse_layers = 0 @@ -1237,11 +1265,13 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 60 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_size_compensation = -0.1 [filament:Basic PETG] bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = printer_model=~/.*Voron.*/ and printer_notes=~/.*E3DV6.*/ compatible_prints = @@ -1253,6 +1283,7 @@ end_filament_gcode = "" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #FF8000 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -1261,6 +1292,8 @@ filament_cost = 30 filament_density = 1.27 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -1270,6 +1303,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -1283,9 +1317,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 0 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PET filament_unload_time = 0 filament_unloading_speed = 90 @@ -1311,6 +1353,8 @@ temperature = 245 [filament:D3D PLA+ Cyanblue] bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -1322,6 +1366,7 @@ end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #4BC1DB filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -1330,6 +1375,8 @@ filament_cost = 30.5 filament_density = 1.23 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -1339,6 +1386,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -1352,9 +1400,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 @@ -1362,7 +1418,7 @@ filament_unloading_speed_start = 100 filament_vendor = (Unknown) filament_wipe = nil first_layer_bed_temperature = 60 -first_layer_temperature = 210 +first_layer_temperature = 220 full_fan_speed_layer = 4 idle_temperature = nil inherits = @@ -1375,11 +1431,13 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" -temperature = 210 +temperature = 220 [filament:D3D PLA+ Marble] bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -1391,6 +1449,7 @@ end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" extrusion_multiplier = 0.97 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #0097B8 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -1399,6 +1458,8 @@ filament_cost = 30.5 filament_density = 1.23 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -1408,6 +1469,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -1421,9 +1483,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 @@ -1446,9 +1516,11 @@ slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" temperature = 235 -[filament:D3d PETG - Blue] -bed_temperature = 70 +[filament:D3d PETG - Purple] +bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -1460,6 +1532,7 @@ end_filament_gcode = "" extrusion_multiplier = 1.02 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #8FA094 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -1468,6 +1541,8 @@ filament_cost = 20 filament_density = 1.45 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -1477,6 +1552,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -1490,22 +1566,30 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 0 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PET filament_unload_time = 0 filament_unloading_speed = 90 filament_unloading_speed_start = 100 filament_vendor = (Unknown) filament_wipe = nil -first_layer_bed_temperature = 70 -first_layer_temperature = 245 +first_layer_bed_temperature = 60 +first_layer_temperature = 250 full_fan_speed_layer = 4 idle_temperature = nil inherits = max_fan_speed = 100 -min_fan_speed = 60 +min_fan_speed = 50 min_print_speed = 15 overhang_fan_speed_0 = 0 overhang_fan_speed_1 = 0 @@ -1513,11 +1597,13 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "" -temperature = 245 +temperature = 250 -[filament:D3d PETG - Purple] -bed_temperature = 60 +[filament:Eryone PETG - Blue] +bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -1529,108 +1615,51 @@ end_filament_gcode = "" extrusion_multiplier = 1.02 fan_always_on = 1 fan_below_layer_time = 20 -filament_colour = #8FA094 +filament_abrasive = 0 +filament_colour = #0F0EF0 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 filament_cooling_moves = 4 -filament_cost = 20 +filament_cost = 29.36 filament_density = 1.45 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 -filament_max_volumetric_speed = 0 +filament_max_volumetric_speed = 16 filament_minimal_purge_on_wipe_tower = 15 filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 -filament_notes = "" +filament_notes = "; 17mm3/s is too fast\n; 13mm3/s is fine\n; try 14mm3/s next; fine\n; try 15mm3/s next; works great\n; try 16mm3/s next" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil filament_retract_layer_change = nil -filament_retract_length = 0.7 +filament_retract_length = 0.9 filament_retract_length_toolchange = nil -filament_retract_lift = 0.6 +filament_retract_lift = nil filament_retract_lift_above = nil filament_retract_lift_below = nil filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 -filament_spool_weight = 0 -filament_toolchange_delay = 0 -filament_type = PET -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 250 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 50 -min_print_speed = 15 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "" -temperature = 250 - -[filament:D3d PETG - Red] -bed_temperature = 70 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 2 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF0002 -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 4 -filament_cost = 20 -filament_density = 1.45 -filament_deretract_speed = nil -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 0 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = 0.7 -filament_retract_length_toolchange = nil -filament_retract_lift = 0.8 -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil -filament_retract_speed = nil -filament_settings_id = "" -filament_soluble = 0 -filament_spool_weight = 0 +filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PET filament_unload_time = 0 filament_unloading_speed = 90 @@ -1643,7 +1672,7 @@ full_fan_speed_layer = 4 idle_temperature = nil inherits = max_fan_speed = 100 -min_fan_speed = 100 +min_fan_speed = 30 min_print_speed = 15 overhang_fan_speed_0 = 0 overhang_fan_speed_1 = 0 @@ -1651,11 +1680,13 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "" -temperature = 240 +temperature = 250 -[filament:D3d PETG - Silver] -bed_temperature = 60 +[filament:Eryone PETG - Galaxy Blue] +bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -1667,92 +1698,27 @@ end_filament_gcode = "" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 -filament_colour = #8FA094 +filament_abrasive = 0 +filament_colour = #331EB0 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 filament_cooling_moves = 4 -filament_cost = 20 +filament_cost = 30 filament_density = 1.45 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 -filament_max_volumetric_speed = 12 +filament_max_volumetric_speed = 15 filament_minimal_purge_on_wipe_tower = 15 filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = 0.7 -filament_retract_length_toolchange = nil -filament_retract_lift = 0.8 -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil -filament_retract_speed = nil -filament_settings_id = "" -filament_soluble = 0 -filament_spool_weight = 0 -filament_toolchange_delay = 0 -filament_type = PET -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 250 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 50 -min_print_speed = 15 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "" -temperature = 250 - -[filament:ELEGOO PLA - Black] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 1 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #0E5FED -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 0 -filament_cost = 22.59 -filament_density = 1.23 -filament_deretract_speed = 25 -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 0 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = ";Full spool weight: 1280g" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -1764,80 +1730,19 @@ filament_retract_lift_above = nil filament_retract_lift_below = nil filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil -filament_retract_speed = 25 -filament_settings_id = "ABS - KVP" -filament_soluble = 0 -filament_spool_weight = 1000 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 80 -min_print_speed = 10 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "; Filament gcode\n" -temperature = 215 - -[filament:Eryone PETG - Blue] -bed_temperature = 70 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 2 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "" -extrusion_multiplier = 1.02 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #0F0EF0 -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 4 -filament_cost = 29.36 -filament_density = 1.45 -filament_deretract_speed = nil -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 12 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = 0.7 -filament_retract_length_toolchange = nil -filament_retract_lift = nil -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PET filament_unload_time = 0 filament_unloading_speed = 90 @@ -1845,12 +1750,12 @@ filament_unloading_speed_start = 100 filament_vendor = (Unknown) filament_wipe = nil first_layer_bed_temperature = 70 -first_layer_temperature = 240 +first_layer_temperature = 255 full_fan_speed_layer = 4 idle_temperature = nil inherits = max_fan_speed = 100 -min_fan_speed = 100 +min_fan_speed = 35 min_print_speed = 15 overhang_fan_speed_0 = 0 overhang_fan_speed_1 = 0 @@ -1858,149 +1763,13 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "" -temperature = 240 - -[filament:Eryone PETG - Galaxy Blue] -bed_temperature = 70 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 2 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #331EB0 -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 4 -filament_cost = 30 -filament_density = 1.45 -filament_deretract_speed = nil -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 12 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = 0.7 -filament_retract_length_toolchange = nil -filament_retract_lift = nil -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil -filament_retract_speed = nil -filament_settings_id = "" -filament_soluble = 0 -filament_spool_weight = 1000 -filament_toolchange_delay = 0 -filament_type = PET -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 70 -first_layer_temperature = 220 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "" -temperature = 220 - -[filament:Eryone PETG - Galaxy Red] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 2 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #571B0D -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 4 -filament_cost = 30 -filament_density = 1.45 -filament_deretract_speed = nil -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 12 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = 0.7 -filament_retract_length_toolchange = nil -filament_retract_lift = nil -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil -filament_retract_speed = nil -filament_settings_id = "" -filament_soluble = 0 -filament_spool_weight = 1000 -filament_toolchange_delay = 0 -filament_type = PET -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 245 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 50 -min_print_speed = 15 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "" -temperature = 235 +temperature = 255 [filament:Eryone PLA - Matte Dual - Pink-Blue] bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2012,6 +1781,7 @@ end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #927BB6 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2020,6 +1790,8 @@ filament_cost = 26.91 filament_density = 1.23 filament_deretract_speed = 30 filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2029,6 +1801,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = ";Full spool weight: 1280g" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2042,78 +1815,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = 30 filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 -filament_type = PLA -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 220 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 10 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "; Filament gcode\n" -temperature = 220 - -[filament:GratKit PLA+ Grey] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 1 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #F6F6F6 -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 0 -filament_cost = 19.35 -filament_density = 1.23 -filament_deretract_speed = nil -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 0 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = ";Full spool weight: 1280g" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = nil -filament_retract_length_toolchange = nil -filament_retract_lift = nil -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil -filament_retract_speed = nil -filament_settings_id = "ABS - KVP" -filament_soluble = 0 -filament_spool_weight = 1000 -filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 @@ -2136,9 +1848,177 @@ slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" temperature = 230 +[filament:GratKit PLA+ Grey] +bed_temperature = 60 +bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 +compatible_printers = +compatible_printers_condition = +compatible_prints = +compatible_prints_condition = +cooling = 1 +disable_fan_first_layers = 1 +enable_dynamic_fan_speeds = 0 +end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" +extrusion_multiplier = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_abrasive = 0 +filament_colour = #F6F6F6 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 0 +filament_cost = 19.35 +filament_density = 1.23 +filament_deretract_speed = nil +filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_volumetric_speed = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_multitool_ramming = 0 +filament_multitool_ramming_flow = 10 +filament_multitool_ramming_volume = 10 +filament_notes = ";Full spool weight: 1280g" +filament_purge_multiplier = 100% +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = nil +filament_retract_length_toolchange = nil +filament_retract_lift = nil +filament_retract_lift_above = nil +filament_retract_lift_below = nil +filament_retract_restart_extra = nil +filament_retract_restart_extra_toolchange = nil +filament_retract_speed = nil +filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% +filament_soluble = 0 +filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 +filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil +filament_type = PLA +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_vendor = (Unknown) +filament_wipe = nil +first_layer_bed_temperature = 60 +first_layer_temperature = 230 +full_fan_speed_layer = 4 +idle_temperature = nil +inherits = +max_fan_speed = 100 +min_fan_speed = 100 +min_print_speed = 10 +overhang_fan_speed_0 = 0 +overhang_fan_speed_1 = 0 +overhang_fan_speed_2 = 0 +overhang_fan_speed_3 = 0 +slowdown_below_layer_time = 15 +start_filament_gcode = "; Filament gcode\n" +temperature = 230 + +[filament:Gratkit PETG - Gray] +bed_temperature = 70 +bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 +compatible_printers = +compatible_printers_condition = +compatible_prints = +compatible_prints_condition = +cooling = 1 +disable_fan_first_layers = 2 +enable_dynamic_fan_speeds = 0 +end_filament_gcode = "" +extrusion_multiplier = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_abrasive = 0 +filament_colour = #5E5C64 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 4 +filament_cost = 19 +filament_density = 1.45 +filament_deretract_speed = nil +filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_volumetric_speed = 14 +filament_minimal_purge_on_wipe_tower = 15 +filament_multitool_ramming = 0 +filament_multitool_ramming_flow = 10 +filament_multitool_ramming_volume = 10 +filament_notes = "; try 16mm3/s next\n; 16 seems too high at 0.3mm layer height\n; try 14mm3/s next" +filament_purge_multiplier = 100% +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = 0.9 +filament_retract_length_toolchange = nil +filament_retract_lift = nil +filament_retract_lift_above = nil +filament_retract_lift_below = nil +filament_retract_restart_extra = nil +filament_retract_restart_extra_toolchange = nil +filament_retract_speed = nil +filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% +filament_soluble = 0 +filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 +filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil +filament_type = PET +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_vendor = (Unknown) +filament_wipe = nil +first_layer_bed_temperature = 70 +first_layer_temperature = 250 +full_fan_speed_layer = 4 +idle_temperature = nil +inherits = +max_fan_speed = 100 +min_fan_speed = 30 +min_print_speed = 15 +overhang_fan_speed_0 = 0 +overhang_fan_speed_1 = 0 +overhang_fan_speed_2 = 0 +overhang_fan_speed_3 = 0 +slowdown_below_layer_time = 15 +start_filament_gcode = "" +temperature = 250 + [filament:Nuolei TPU - Light Blue] bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2150,6 +2030,7 @@ end_filament_gcode = "; Filament-specific end gcode" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #6FF2EC filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2158,15 +2039,18 @@ filament_cost = 18.07 filament_density = 1.22 filament_deretract_speed = 30 filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 -filament_max_volumetric_speed = 0 +filament_max_volumetric_speed = 8 filament_minimal_purge_on_wipe_tower = 15 filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "- Original print temp was 235.\n- Retraction lenght was 0.3." +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2180,9 +2064,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = 30 filament_settings_id = "Generic FLEX" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 500 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = FLEX filament_unload_time = 0 filament_unloading_speed = 90 @@ -2202,12 +2094,14 @@ overhang_fan_speed_1 = 0 overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 -start_filament_gcode = "M900 K0" +start_filament_gcode = "" temperature = 225 [filament:Overture PETG] bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2219,6 +2113,7 @@ end_filament_gcode = "" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #FFC800 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2227,6 +2122,8 @@ filament_cost = 22 filament_density = 1.45 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2236,6 +2133,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2249,9 +2147,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 185 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PETG filament_unload_time = 0 filament_unloading_speed = 90 @@ -2277,6 +2183,8 @@ temperature = 240 [filament:Polymaker PolyLite PETG - Silver] bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2288,28 +2196,32 @@ end_filament_gcode = "" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 -filament_colour = #331EB0 +filament_abrasive = 0 +filament_colour = #9A9996 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 filament_cooling_moves = 4 -filament_cost = 30 +filament_cost = 22.59 filament_density = 1.45 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 -filament_max_volumetric_speed = 15 +filament_max_volumetric_speed = 12 filament_minimal_purge_on_wipe_tower = 15 filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 -filament_notes = "" +filament_notes = "; 12mm3/s is fine\n; 13mm3/s testing" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil filament_retract_layer_change = nil -filament_retract_length = 0.7 +filament_retract_length = nil filament_retract_length_toolchange = nil filament_retract_lift = nil filament_retract_lift_above = nil @@ -2318,9 +2230,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PET filament_unload_time = 0 filament_unloading_speed = 90 @@ -2328,12 +2248,12 @@ filament_unloading_speed_start = 100 filament_vendor = (Unknown) filament_wipe = nil first_layer_bed_temperature = 70 -first_layer_temperature = 245 +first_layer_temperature = 255 full_fan_speed_layer = 4 idle_temperature = nil inherits = max_fan_speed = 100 -min_fan_speed = 65 +min_fan_speed = 100 min_print_speed = 15 overhang_fan_speed_0 = 0 overhang_fan_speed_1 = 0 @@ -2341,11 +2261,96 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "" -temperature = 245 +temperature = 255 -[filament:Sparta3D ABS @VORON - Sky Blue, Sparkle] +[filament:Polymaker PolyLite PLA - Silk Light Blue] +bed_temperature = 60 +bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 +compatible_printers = +compatible_printers_condition = +compatible_prints = +compatible_prints_condition = +cooling = 1 +disable_fan_first_layers = 1 +enable_dynamic_fan_speeds = 0 +end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" +extrusion_multiplier = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_abrasive = 0 +filament_colour = #99C1F1 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 0 +filament_cost = 19.35 +filament_density = 1.23 +filament_deretract_speed = nil +filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_volumetric_speed = 0 +filament_minimal_purge_on_wipe_tower = 15 +filament_multitool_ramming = 0 +filament_multitool_ramming_flow = 10 +filament_multitool_ramming_volume = 10 +filament_notes = ";Full spool weight: 1280g" +filament_purge_multiplier = 100% +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = nil +filament_retract_length_toolchange = nil +filament_retract_lift = nil +filament_retract_lift_above = nil +filament_retract_lift_below = nil +filament_retract_restart_extra = nil +filament_retract_restart_extra_toolchange = nil +filament_retract_speed = nil +filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% +filament_soluble = 0 +filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 +filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil +filament_type = PLA +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_vendor = (Unknown) +filament_wipe = nil +first_layer_bed_temperature = 60 +first_layer_temperature = 230 +full_fan_speed_layer = 4 +idle_temperature = nil +inherits = +max_fan_speed = 100 +min_fan_speed = 100 +min_print_speed = 10 +overhang_fan_speed_0 = 0 +overhang_fan_speed_1 = 0 +overhang_fan_speed_2 = 0 +overhang_fan_speed_3 = 0 +slowdown_below_layer_time = 15 +start_filament_gcode = "; Filament gcode\n" +temperature = 230 + +[filament:Sparta3D ABS - Sky Blue, Sparkle] bed_temperature = 100 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2357,6 +2362,7 @@ end_filament_gcode = "" extrusion_multiplier = 0.98 fan_always_on = 0 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #4BC1DB filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2365,6 +2371,8 @@ filament_cost = 35 filament_density = 1.04 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2374,6 +2382,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = ";max fan speed changed from 0 to 100" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2387,9 +2396,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = ABS filament_unload_time = 0 filament_unloading_speed = 90 @@ -2412,9 +2429,11 @@ slowdown_below_layer_time = 15 start_filament_gcode = "" temperature = 240 -[filament:Tinmorry PETG - Red] +[filament:Tinmorry PETG - Marble] bed_temperature = 70 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2423,10 +2442,11 @@ cooling = 1 disable_fan_first_layers = 2 enable_dynamic_fan_speeds = 0 end_filament_gcode = "" -extrusion_multiplier = 1 +extrusion_multiplier = 1.02 fan_always_on = 1 fan_below_layer_time = 20 -filament_colour = #A60001 +filament_abrasive = 0 +filament_colour = #FFFFFF filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 filament_cooling_moves = 4 @@ -2434,15 +2454,18 @@ filament_cost = 22.02 filament_density = 1.45 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 -filament_max_volumetric_speed = 12 +filament_max_volumetric_speed = 13 filament_minimal_purge_on_wipe_tower = 15 filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2450,15 +2473,23 @@ filament_retract_layer_change = nil filament_retract_length = 0.7 filament_retract_length_toolchange = nil filament_retract_lift = 0.6 -filament_retract_lift_above = 0.26 -filament_retract_lift_below = 250 +filament_retract_lift_above = 0.3 +filament_retract_lift_below = 255 filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PET filament_unload_time = 0 filament_unloading_speed = 90 @@ -2471,7 +2502,90 @@ full_fan_speed_layer = 4 idle_temperature = nil inherits = max_fan_speed = 100 -min_fan_speed = 50 +min_fan_speed = 30 +min_print_speed = 15 +overhang_fan_speed_0 = 0 +overhang_fan_speed_1 = 0 +overhang_fan_speed_2 = 0 +overhang_fan_speed_3 = 0 +slowdown_below_layer_time = 15 +start_filament_gcode = "" +temperature = 250 + +[filament:Tinmorry PETG - Red] +bed_temperature = 70 +bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 +compatible_printers = +compatible_printers_condition = +compatible_prints = +compatible_prints_condition = +cooling = 1 +disable_fan_first_layers = 2 +enable_dynamic_fan_speeds = 0 +end_filament_gcode = "" +extrusion_multiplier = 1 +fan_always_on = 1 +fan_below_layer_time = 20 +filament_abrasive = 0 +filament_colour = #A60001 +filament_cooling_final_speed = 3.4 +filament_cooling_initial_speed = 2.2 +filament_cooling_moves = 4 +filament_cost = 22.02 +filament_density = 1.45 +filament_deretract_speed = nil +filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 +filament_load_time = 0 +filament_loading_speed = 28 +filament_loading_speed_start = 3 +filament_max_volumetric_speed = 12 +filament_minimal_purge_on_wipe_tower = 15 +filament_multitool_ramming = 0 +filament_multitool_ramming_flow = 10 +filament_multitool_ramming_volume = 10 +filament_notes = "" +filament_purge_multiplier = 100% +filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" +filament_retract_before_travel = nil +filament_retract_before_wipe = nil +filament_retract_layer_change = nil +filament_retract_length = 0.7 +filament_retract_length_toolchange = nil +filament_retract_lift = 0.6 +filament_retract_lift_above = 0.3 +filament_retract_lift_below = 255 +filament_retract_restart_extra = nil +filament_retract_restart_extra_toolchange = nil +filament_retract_speed = nil +filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% +filament_soluble = 0 +filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 +filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil +filament_type = PET +filament_unload_time = 0 +filament_unloading_speed = 90 +filament_unloading_speed_start = 100 +filament_vendor = (Unknown) +filament_wipe = nil +first_layer_bed_temperature = 70 +first_layer_temperature = 250 +full_fan_speed_layer = 4 +idle_temperature = nil +inherits = +max_fan_speed = 100 +min_fan_speed = 30 min_print_speed = 15 overhang_fan_speed_0 = 0 overhang_fan_speed_1 = 0 @@ -2484,6 +2598,8 @@ temperature = 250 [filament:VOXELAB PLA Silk Rainbow] bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2495,6 +2611,7 @@ end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #927BB6 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2503,6 +2620,8 @@ filament_cost = 25.92 filament_density = 1.23 filament_deretract_speed = 25 filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2512,11 +2631,12 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = "" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil filament_retract_layer_change = nil -filament_retract_length = 0.6 +filament_retract_length = nil filament_retract_length_toolchange = nil filament_retract_lift = nil filament_retract_lift_above = nil @@ -2525,9 +2645,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = 25 filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 @@ -2535,12 +2663,12 @@ filament_unloading_speed_start = 100 filament_vendor = (Unknown) filament_wipe = nil first_layer_bed_temperature = 60 -first_layer_temperature = 220 +first_layer_temperature = 230 full_fan_speed_layer = 4 idle_temperature = nil inherits = max_fan_speed = 100 -min_fan_speed = 80 +min_fan_speed = 100 min_print_speed = 10 overhang_fan_speed_0 = 0 overhang_fan_speed_1 = 0 @@ -2548,11 +2676,13 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" -temperature = 220 +temperature = 230 -[filament:eSun ABS @VORON - Black] +[filament:eSun ABS+ Black] bed_temperature = 100 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2564,6 +2694,7 @@ end_filament_gcode = "" extrusion_multiplier = 0.98 fan_always_on = 0 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #000000 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2572,6 +2703,8 @@ filament_cost = 30 filament_density = 1.04 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2581,6 +2714,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = ";max fan speed changed from 0 to 100" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2594,9 +2728,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 0 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = ABS filament_unload_time = 0 filament_unloading_speed = 90 @@ -2619,9 +2761,11 @@ slowdown_below_layer_time = 15 start_filament_gcode = "" temperature = 245 -[filament:eSun ABS @VORON - Green] +[filament:eSun ABS+ Green] bed_temperature = 90 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2633,6 +2777,7 @@ end_filament_gcode = "" extrusion_multiplier = 0.98 fan_always_on = 0 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #73E350 filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2641,6 +2786,8 @@ filament_cost = 30 filament_density = 1.04 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2650,6 +2797,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = ";max fan speed changed from 0 to 100" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2663,9 +2811,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 0 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = ABS filament_unload_time = 0 filament_unloading_speed = 90 @@ -2691,6 +2847,8 @@ temperature = 245 [filament:eSun PLA+ Blue] bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2702,6 +2860,7 @@ end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #0E5FED filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2710,6 +2869,8 @@ filament_cost = 19.35 filament_density = 1.23 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2719,6 +2880,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = ";Full spool weight: 1280g" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2732,9 +2894,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 @@ -2742,7 +2912,7 @@ filament_unloading_speed_start = 100 filament_vendor = (Unknown) filament_wipe = nil first_layer_bed_temperature = 60 -first_layer_temperature = 220 +first_layer_temperature = 230 full_fan_speed_layer = 4 idle_temperature = nil inherits = @@ -2755,80 +2925,13 @@ overhang_fan_speed_2 = 0 overhang_fan_speed_3 = 0 slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" -temperature = 220 - -[filament:eSun PLA+ Magenta] -bed_temperature = 60 -bridge_fan_speed = 100 -compatible_printers = -compatible_printers_condition = -compatible_prints = -compatible_prints_condition = -cooling = 1 -disable_fan_first_layers = 1 -enable_dynamic_fan_speeds = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -extrusion_multiplier = 0.97 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #707070 -filament_cooling_final_speed = 3.4 -filament_cooling_initial_speed = 2.2 -filament_cooling_moves = 0 -filament_cost = 30 -filament_density = 1.23 -filament_deretract_speed = nil -filament_diameter = 1.75 -filament_load_time = 0 -filament_loading_speed = 28 -filament_loading_speed_start = 3 -filament_max_volumetric_speed = 0 -filament_minimal_purge_on_wipe_tower = 15 -filament_multitool_ramming = 0 -filament_multitool_ramming_flow = 10 -filament_multitool_ramming_volume = 10 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_retract_before_travel = nil -filament_retract_before_wipe = nil -filament_retract_layer_change = nil -filament_retract_length = nil -filament_retract_length_toolchange = nil -filament_retract_lift = nil -filament_retract_lift_above = nil -filament_retract_lift_below = nil -filament_retract_restart_extra = nil -filament_retract_restart_extra_toolchange = nil -filament_retract_speed = nil -filament_settings_id = "ABS - KVP" -filament_soluble = 0 -filament_spool_weight = 1000 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unload_time = 0 -filament_unloading_speed = 90 -filament_unloading_speed_start = 100 -filament_vendor = (Unknown) -filament_wipe = nil -first_layer_bed_temperature = 60 -first_layer_temperature = 210 -full_fan_speed_layer = 4 -idle_temperature = nil -inherits = -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 10 -overhang_fan_speed_0 = 0 -overhang_fan_speed_1 = 0 -overhang_fan_speed_2 = 0 -overhang_fan_speed_3 = 0 -slowdown_below_layer_time = 15 -start_filament_gcode = "; Filament gcode\n" -temperature = 210 +temperature = 230 [filament:eSun PLA+ Silver] bed_temperature = 60 bridge_fan_speed = 100 +chamber_minimal_temperature = 0 +chamber_temperature = 0 compatible_printers = compatible_printers_condition = compatible_prints = @@ -2840,6 +2943,7 @@ end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" extrusion_multiplier = 1 fan_always_on = 1 fan_below_layer_time = 20 +filament_abrasive = 0 filament_colour = #0E5FED filament_cooling_final_speed = 3.4 filament_cooling_initial_speed = 2.2 @@ -2848,6 +2952,8 @@ filament_cost = 30 filament_density = 1.23 filament_deretract_speed = nil filament_diameter = 1.75 +filament_infill_max_crossing_speed = 0 +filament_infill_max_speed = 0 filament_load_time = 0 filament_loading_speed = 28 filament_loading_speed_start = 3 @@ -2857,6 +2963,7 @@ filament_multitool_ramming = 0 filament_multitool_ramming_flow = 10 filament_multitool_ramming_volume = 10 filament_notes = ";Full spool weight: 1280g" +filament_purge_multiplier = 100% filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil filament_retract_before_wipe = nil @@ -2870,9 +2977,17 @@ filament_retract_restart_extra = nil filament_retract_restart_extra_toolchange = nil filament_retract_speed = nil filament_settings_id = "ABS - KVP" +filament_shrinkage_compensation_xy = 0% +filament_shrinkage_compensation_z = 0% filament_soluble = 0 filament_spool_weight = 1000 +filament_stamping_distance = 0 +filament_stamping_loading_speed = 20 filament_toolchange_delay = 0 +filament_travel_lift_before_obstacle = nil +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 @@ -2895,13 +3010,14 @@ slowdown_below_layer_time = 15 start_filament_gcode = "; Filament gcode\n" temperature = 210 -[printer:Sovol SV06] +[printer:SV06] autoemit_temperature_commands = 1 bed_custom_model = bed_custom_texture = bed_shape = 0x0,223x0,223x223,0x223 -before_layer_gcode = +before_layer_gcode = ; TIMELAPSE_TAKE_FRAME between_objects_gcode = +binary_gcode = 0 color_change_gcode = M600 cooling_tube_length = 5 cooling_tube_retraction = 91.5 @@ -2910,7 +3026,7 @@ default_print_profile = 0.15mm QUALITY @MK3 deretract_speed = 40 end_gcode = PRINT_END extra_loading_move = -2 -extruder_colour = #FFE3CA +extruder_colour = "" extruder_offset = 0x0 gcode_flavor = klipper high_current_on_filament_swap = 0 @@ -2935,15 +3051,18 @@ machine_max_jerk_y = 8,8 machine_max_jerk_z = 0.4,0.4 machine_min_extruding_rate = 0,0 machine_min_travel_rate = 0,0 -max_layer_height = 0 +max_layer_height = 0.3 max_print_height = 255 min_layer_height = 0.04 +multimaterial_purging = 140 nozzle_diameter = 0.4 +nozzle_high_flow = 0 parking_pos_retraction = 92 pause_print_gcode = PAUSE +prefer_clockwise_movements = 0 print_host = printer_model = -printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: 65.33 (actual 64.33)\n; Height: 25.87 (actual 24.87)\n +printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: 66 (actual 64.33)\n; Height: 26 (actual 24.87)\n printer_settings_id = Sovol Sv06 printer_technology = FFF printer_variant = 0.4 @@ -2957,18 +3076,22 @@ retract_layer_change = 1 retract_length = 0.5 retract_length_toolchange = 10 retract_lift = 0 -retract_lift_above = 0.2 -retract_lift_below = 250 +retract_lift_above = 0.26 +retract_lift_below = 245 retract_restart_extra = 0 retract_restart_extra_toolchange = 0 retract_speed = 40 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\nM140 S0\nM117\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code template_custom_gcode = -thumbnails = 32x32,400x300 +thumbnails = 32x32/PNG, 400x300/PNG thumbnails_format = PNG toolchange_gcode = +travel_lift_before_obstacle = 0 +travel_max_lift = 0 +travel_ramping_lift = 0 +travel_slope = 0 use_firmware_retraction = 0 use_relative_e_distances = 1 use_volumetric_e = 0 @@ -2976,13 +3099,14 @@ variable_layer_height = 1 wipe = 0 z_offset = 0 -[printer:Sovol SV06 Plus] +[printer:SV06 Plus] autoemit_temperature_commands = 1 bed_custom_model = bed_custom_texture = bed_shape = 0x0,300x0,300x300,0x300 -before_layer_gcode = +before_layer_gcode = ; TIMELAPSE_TAKE_FRAME between_objects_gcode = +binary_gcode = 0 color_change_gcode = M600 cooling_tube_length = 5 cooling_tube_retraction = 91.5 @@ -2991,7 +3115,7 @@ default_print_profile = 0.15mm QUALITY @MK3 deretract_speed = 40 end_gcode = PRINT_END extra_loading_move = -2 -extruder_colour = #FFE3CA +extruder_colour = "" extruder_offset = 0x0 gcode_flavor = klipper high_current_on_filament_swap = 0 @@ -3016,15 +3140,18 @@ machine_max_jerk_y = 8,8 machine_max_jerk_z = 0.4,0.4 machine_min_extruding_rate = 0,0 machine_min_travel_rate = 0,0 -max_layer_height = 0 +max_layer_height = 0.3 max_print_height = 340 min_layer_height = 0.04 +multimaterial_purging = 140 nozzle_diameter = 0.4 +nozzle_high_flow = 0 parking_pos_retraction = 92 pause_print_gcode = PAUSE +prefer_clockwise_movements = 0 print_host = printer_model = -printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: 65.33 (actual 64.33)\n; Height: 34.85 (actual 33.85)\n; Values pulled from modes; you should verify for your unit.\n +printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: 66 (actual 64.33)\n; Height: 26 (actual 24.87)\n printer_settings_id = Sovol Sv06 printer_technology = FFF printer_variant = 0.4 @@ -3038,18 +3165,22 @@ retract_layer_change = 1 retract_length = 0.5 retract_length_toolchange = 10 retract_lift = 0 -retract_lift_above = 0.2 -retract_lift_below = 250 +retract_lift_above = 0.26 +retract_lift_below = 245 retract_restart_extra = 0 retract_restart_extra_toolchange = 0 retract_speed = 40 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\nM140 S0\nM117\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code template_custom_gcode = -thumbnails = 32x32,400x300 +thumbnails = 32x32/PNG, 400x300/PNG thumbnails_format = PNG toolchange_gcode = +travel_lift_before_obstacle = 0 +travel_max_lift = 0 +travel_ramping_lift = 0 +travel_slope = 0 use_firmware_retraction = 0 use_relative_e_distances = 1 use_volumetric_e = 0 @@ -3057,13 +3188,14 @@ variable_layer_height = 1 wipe = 0 z_offset = 0 -[printer:Sovol SV07] +[printer:SV07] autoemit_temperature_commands = 1 bed_custom_model = bed_custom_texture = bed_shape = 0x0,220x0,220x220,0x220 -before_layer_gcode = +before_layer_gcode = ; TIMELAPSE_TAKE_FRAME between_objects_gcode = +binary_gcode = 0 color_change_gcode = M600 cooling_tube_length = 5 cooling_tube_retraction = 91.5 @@ -3072,7 +3204,7 @@ default_print_profile = 0.15mm QUALITY @MK3 deretract_speed = 40 end_gcode = PRINT_END extra_loading_move = -2 -extruder_colour = #FFE3CA +extruder_colour = "" extruder_offset = 0x0 gcode_flavor = klipper high_current_on_filament_swap = 0 @@ -3097,12 +3229,15 @@ machine_max_jerk_y = 8,8 machine_max_jerk_z = 0.4,0.4 machine_min_extruding_rate = 0,0 machine_min_travel_rate = 0,0 -max_layer_height = 0 +max_layer_height = 0.3 max_print_height = 250 min_layer_height = 0.04 +multimaterial_purging = 140 nozzle_diameter = 0.4 +nozzle_high_flow = 0 parking_pos_retraction = 92 pause_print_gcode = PAUSE +prefer_clockwise_movements = 0 print_host = printer_model = printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: ??? (actual ???)\n; Height: ??? (actual ???)\n @@ -3119,18 +3254,22 @@ retract_layer_change = 1 retract_length = 0.5 retract_length_toolchange = 10 retract_lift = 0 -retract_lift_above = 0.2 -retract_lift_below = 250 +retract_lift_above = 0.26 +retract_lift_below = 245 retract_restart_extra = 0 retract_restart_extra_toolchange = 0 retract_speed = 40 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\n; PURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\nM140 S0\nM117\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code template_custom_gcode = -thumbnails = 32x32,400x300 +thumbnails = 32x32/PNG, 400x300/PNG thumbnails_format = PNG toolchange_gcode = +travel_lift_before_obstacle = 0 +travel_max_lift = 0 +travel_ramping_lift = 0 +travel_slope = 0 use_firmware_retraction = 0 use_relative_e_distances = 1 use_volumetric_e = 0 @@ -3138,13 +3277,14 @@ variable_layer_height = 1 wipe = 0 z_offset = 0 -[printer:Sovol SV07 Plus] +[printer:SV07 Plus] autoemit_temperature_commands = 1 bed_custom_model = bed_custom_texture = bed_shape = 0x0,300x0,300x300,0x300 -before_layer_gcode = +before_layer_gcode = ; TIMELAPSE_TAKE_FRAME between_objects_gcode = +binary_gcode = 0 color_change_gcode = M600 cooling_tube_length = 5 cooling_tube_retraction = 91.5 @@ -3153,7 +3293,7 @@ default_print_profile = 0.15mm QUALITY @MK3 deretract_speed = 40 end_gcode = PRINT_END extra_loading_move = -2 -extruder_colour = #FFE3CA +extruder_colour = "" extruder_offset = 0x0 gcode_flavor = klipper high_current_on_filament_swap = 0 @@ -3178,12 +3318,15 @@ machine_max_jerk_y = 8,8 machine_max_jerk_z = 0.4,0.4 machine_min_extruding_rate = 0,0 machine_min_travel_rate = 0,0 -max_layer_height = 0 +max_layer_height = 0.3 max_print_height = 350 min_layer_height = 0.04 +multimaterial_purging = 140 nozzle_diameter = 0.4 +nozzle_high_flow = 0 parking_pos_retraction = 92 pause_print_gcode = PAUSE +prefer_clockwise_movements = 0 print_host = printer_model = printer_notes = ; For sequential printing,\n; set Extruder clearance\n; Radius: ??? (actual ???)\n; Height: ??? (actual ???)\n @@ -3200,18 +3343,22 @@ retract_layer_change = 1 retract_length = 0.5 retract_length_toolchange = 10 retract_lift = 0 -retract_lift_above = 0.2 -retract_lift_below = 250 +retract_lift_above = 0.26 +retract_lift_below = 245 retract_restart_extra = 0 retract_restart_extra_toolchange = 0 retract_speed = 40 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\r\nM140 S0\nM117\r\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\r\n; PURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code +start_gcode = M104 S0 ; Stops PS/SS from sending temp waits separately\nM140 S0\nM117\nPRINT_START BED=[first_layer_bed_temperature] HOTEND=[first_layer_temperature[initial_extruder]]\nPURGE_LINE\n\n;; Guide: https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code template_custom_gcode = -thumbnails = 32x32,400x300 +thumbnails = 32x32/PNG, 400x300/PNG thumbnails_format = PNG toolchange_gcode = +travel_lift_before_obstacle = 0 +travel_max_lift = 0 +travel_ramping_lift = 0 +travel_slope = 0 use_firmware_retraction = 0 use_relative_e_distances = 1 use_volumetric_e = 0 @@ -3221,9 +3368,9 @@ z_offset = 0 [physical_printer:Local SV06] host_type = octoprint -preset_name = Sovol SV06 -preset_names = "Sovol SV06" -print_host = http://10.0.0.51 +preset_name = SV06 +preset_names = SV06 +print_host = http://10.0.0.113 printer_technology = FFF printhost_apikey = printhost_authorization_type = key @@ -3235,9 +3382,9 @@ printhost_user = [physical_printer:Local SV06 Plus] host_type = octoprint -preset_name = Sovol SV06 Plus -preset_names = "Sovol SV06 Plus" -print_host = http://10.0.0.51 +preset_name = SV06 Plus +preset_names = "SV06 Plus" +print_host = http://10.0.0.113 printer_technology = FFF printhost_apikey = printhost_authorization_type = key @@ -3249,9 +3396,9 @@ printhost_user = [physical_printer:Local SV07] host_type = octoprint -preset_name = Sovol SV07 -preset_names = "Sovol SV07" -print_host = http://10.0.0.51 +preset_name = SV07 +preset_names = SV07 +print_host = http://10.0.0.113 printer_technology = FFF printhost_apikey = printhost_authorization_type = key @@ -3263,9 +3410,9 @@ printhost_user = [physical_printer:Local SV07 Plus] host_type = octoprint -preset_name = Sovol SV07 Plus -preset_names = "Sovol SV07 Plus" -print_host = http://10.0.0.51 +preset_name = SV07 Plus +preset_names = "SV07 Plus" +print_host = http://10.0.0.113 printer_technology = FFF printhost_apikey = printhost_authorization_type = key @@ -3279,6 +3426,6 @@ printhost_user = print = Ellis_PIF_Standard_15mm3 sla_print = sla_material = -printer = Sovol SV06 +printer = SV06 filament = eSun PLA+ Blue physical_printer = From 9b025cde7309a1a51f9a46407e279d0636f8f121 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Mon, 25 Nov 2024 00:47:30 -0500 Subject: [PATCH 38/39] Adjust readme. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94ba18b..d8a1031 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ support my open source work ❤️ | Printer | Branch | | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | ${\normalsize{\textcolor{darkturquoise}{\text{Sovol SV06}}}}$ | ⚡ ${\scriptsize{\textcolor{darkturquoise}{\text{YOU ARE HERE}}}}$ ⚡ | -| Sovol SV06 Skr-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) | -| Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) | +| Sovol SV06 SKR-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) | | Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* | +| Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) | | All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) | ${\small{\textit{** Maintained by ElPainis}}}$ From 89904dc35603f04619e20a50d0f563d46074204b Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Thu, 2 Jan 2025 22:43:53 -0500 Subject: [PATCH 39/39] Add mcu timer too close error to special considerations. --- .vscode/settings.json | 3 +-- README.md | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 46bdbfe..06f81c1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,5 @@ { "editor.tabSize": 4, - // "editor.formatOnSave": false, - // "editor.defaultFormatter": null, "editor.insertSpaces": true, "editor.detectIndentation": false, "git.mergeEditor": false, @@ -20,6 +18,7 @@ "Klipper", "Klipperized", "lrwxrwxrwx", + "microsteps", "moonraker", "normalsize", "octahedroflake", diff --git a/README.md b/README.md index d8a1031..0ffcae4 100644 --- a/README.md +++ b/README.md @@ -318,6 +318,12 @@ In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances. Renamed to `_BED_MESH_CALIBRATE`. +### Errors + +#### MCU 'mcu' shutdown: Timer too close + +This error often occurs when the `mcu` is unable to generate the required `microsteps`. Lower power Klipper hosts might be especially susceptible. Reducing `microsteps` to `64`, or even `32` can resolve the issue. + [🔼 Back to top](#outline) ## FAQ