diff --git a/resources/profiles/Anker.ini b/resources/profiles/Anker.ini
index 70cb4dcf14..cbddb549d3 100644
--- a/resources/profiles/Anker.ini
+++ b/resources/profiles/Anker.ini
@@ -24,6 +24,18 @@ bed_texture = M5-texture_v2.svg
thumbnail = M5_thumbnail_v2.png
default_materials = Generic PLA+ @ANKER; Generic PLA @ANKER; Generic PET @ANKER; Generic ABS @ANKER;
+# All presets starting with asterisk, for example *common*, are intermediate and they will
+# not make it into the user interface.
+[printer_model:M5C]
+name = AnkerMake M5C
+variants = 0.4
+technology = FFF
+family = AnkerMake
+bed_model = M5C-bed.stl
+bed_texture = M5C-texture_v2.svg
+thumbnail = M5C_thumbnail_v2.png
+default_materials = Generic PLA+ @ANKER; Generic PLA @ANKER; Generic PET @ANKER; Generic ABS @ANKER;
+
# All presets starting with asterisk, for example *common*, are intermediate and they will
# not make it into the user interface.
@@ -166,16 +178,265 @@ top_solid_layers = 4
[print:0.10 mm HIGHDETAIL (0.4 mm nozzle) @ANKER]
inherits = *0.10mm*
-compatible_printers_condition = printer_model=~/(M5).*/ and nozzle_diameter[0]==0.4
+compatible_printers_condition = printer_notes=~/.*(MACHINE_M5_).*/ and nozzle_diameter[0]==0.4
[print:0.20 mm NORMAL (0.4 mm nozzle) @ANKER]
inherits = *0.20mm*
-compatible_printers_condition = printer_model=~/(M5).*/ and nozzle_diameter[0]==0.4
+compatible_printers_condition = printer_notes=~/.*(MACHINE_M5_).*/ and nozzle_diameter[0]==0.4
[print:0.30 mm SUPERDRAFT (0.4 mm nozzle) @ANKER]
inherits = *0.30mm*
-compatible_printers_condition = printer_model=~/(M5).*/ and nozzle_diameter[0]==0.4
+compatible_printers_condition = printer_notes=~/.*(MACHINE_M5_).*/ and nozzle_diameter[0]==0.4
+
+[print:*common-M5C*]
+avoid_crossing_curled_overhangs = 0
+avoid_crossing_perimeters = 0
+avoid_crossing_perimeters_max_detour = 0
+bottom_fill_pattern = rectilinear
+bottom_solid_min_thickness = 0.8
+bridge_angle = 0
+bridge_flow_ratio = 1
+bridge_speed = 30
+brim_separation = 0.1
+brim_type = no_brim
+brim_width = 8
+complete_objects = 0
+dont_support_bridges = 1
+draft_shield = disabled
+elefant_foot_compensation = 0
+enable_dynamic_overhang_speeds = 1
+external_perimeter_extrusion_width = 0.44
+external_perimeter_speed = 75
+external_perimeters_first = 1
+extra_perimeters = 1
+extra_perimeters_on_overhangs = 0
+extruder_clearance_height = 20
+extruder_clearance_radius = 20
+extrusion_width = 0.4
+fill_angle = 45
+fill_density = 10%
+fill_pattern = grid
+first_layer_acceleration = 2500
+first_layer_acceleration_over_raft = 0
+first_layer_extrusion_width = 0.5
+first_layer_speed = 50
+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 = 75
+gcode_comments = 0
+gcode_label_objects = 0
+gcode_resolution = 0.0125
+gcode_substitutions = "(G28 ;Home.*$)";"${1}\\nM4899 T3\\n";;";S-Curve"
+infill_acceleration = 4000
+infill_anchor = 30
+infill_anchor_max = 60
+infill_every_layers = 1
+infill_extruder = 1
+infill_extrusion_width = 0.4
+infill_first = 0
+infill_overlap = 25%
+infill_speed = 250
+interface_shells = 0
+ironing = 0
+ironing_flowrate = 15%
+ironing_spacing = 0.1
+ironing_speed = 15
+ironing_type = top
+max_print_speed = 500
+max_volumetric_extrusion_rate_slope_negative = 0
+max_volumetric_extrusion_rate_slope_positive = 0
+max_volumetric_speed = 0
+min_bead_width = 85%
+min_feature_size = 25%
+min_skirt_length = 0
+mmu_segmented_region_max_width = 0
+only_retract_when_crossing_perimeters = 0
+ooze_prevention = 0
+output_filename_format = {input_filename_base}_{layer_height}mm_{initial_filament_type}_{printer_model}.gcode
+overhang_speed_0 = 25
+overhang_speed_1 = 55
+overhang_speed_2 = 55
+overhang_speed_3 = 100%
+overhangs = 1
+perimeter_extruder = 1
+perimeter_extrusion_width = 0.4
+perimeter_generator = classic
+perimeter_speed = 200
+post_process =
+print_settings_id =
+raft_contact_distance = 0.1
+raft_expansion = 1.5
+raft_first_layer_density = 90%
+raft_first_layer_expansion = 0
+raft_layers = 0
+resolution = 0
+seam_position = aligned
+single_extruder_multi_material_priming = 1
+skirt_distance = 6
+skirt_height = 1
+skirts = 1
+slice_closing_radius = 0.049
+slicing_mode = regular
+small_perimeter_speed = 75
+solid_infill_below_area = 0
+solid_infill_every_layers = 0
+solid_infill_extruder = 1
+solid_infill_extrusion_width = 0.4
+solid_infill_speed = 100
+spiral_vase = 0
+staggered_inner_seams = 0
+standby_temperature_delta = -5
+support_material = 0
+support_material_angle = 90
+support_material_auto = 1
+support_material_bottom_contact_distance = 0
+support_material_bottom_interface_layers = -1
+support_material_buildplate_only = 0
+support_material_closing_radius = 2
+support_material_contact_distance = 0.2
+support_material_enforce_layers = 0
+support_material_extruder = 1
+support_material_extrusion_width = 0.3
+support_material_interface_contact_loops = 0
+support_material_interface_extruder = 1
+support_material_interface_layers = 0
+support_material_interface_pattern = rectilinear
+support_material_interface_spacing = 0.2
+support_material_interface_speed = 100%
+support_material_pattern = rectilinear
+support_material_spacing = 1.333
+support_material_speed = 150
+support_material_style = grid
+support_material_synchronize_layers = 0
+support_material_threshold = 30
+support_material_with_sheath = 0
+support_material_xy_spacing = 0.8
+support_tree_angle = 40
+support_tree_angle_slow = 25
+support_tree_branch_diameter = 2
+support_tree_branch_diameter_angle = 5
+support_tree_branch_distance = 1
+support_tree_tip_diameter = 0.8
+support_tree_top_rate = 15%
+thick_bridges = 0
+thin_walls = 1
+threads = 10
+top_fill_pattern = rectilinear
+top_infill_extrusion_width = 0.2
+top_solid_infill_speed = 50
+top_solid_min_thickness = 0.8
+travel_speed = 500
+travel_speed_z = 10
+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_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:Precision - M5C (0.4 mm nozzle) @ANKER]
+inherits = *common-M5C*
+compatible_printers_condition = printer_notes=~/.*(MACHINE_M5C_).*/ and printer_notes=~/.*(P_PRECISION).*/ and nozzle_diameter[0]==0.4
+first_layer_height = 0.14
+layer_height = 0.16
+top_solid_layers = 5
+bottom_solid_layers = 3
+perimeters = 2
+bridge_acceleration = 500
+default_acceleration = 4000
+external_perimeter_acceleration = 3000
+perimeter_acceleration = 3000
+top_solid_infill_acceleration = 2500
+travel_acceleration = 4000
+solid_infill_acceleration = 2500
+
+[print:Normal - M5C (0.4 mm nozzle) @ANKER]
+inherits = *common-M5C*
+notes = PRINT_COMPATIBLE\n P_NORMAL\n F_PLA__Basic\n
+compatible_printers_condition = printer_notes=~/.*(MACHINE_M5C_).*/ and printer_notes=~/.*(P_NORMAL).*/ and nozzle_diameter[0]==0.4
+first_layer_height = 0.14
+layer_height = 0.2
+top_solid_layers = 4
+bottom_solid_layers = 4
+perimeters = 3
+bridge_acceleration = 500
+default_acceleration = 2500
+external_perimeter_acceleration = 2500
+external_perimeter_speed = 150
+first_layer_acceleration = 2500
+first_layer_acceleration_over_raft = 0
+first_layer_speed = 50
+gap_fill_speed = 75
+infill_acceleration = 2500
+infill_speed = 250
+max_print_speed = 250
+overhang_speed_0 = 15
+overhang_speed_1 = 20
+overhang_speed_2 = 30
+overhang_speed_3 = 30
+perimeter_acceleration = 2500
+perimeter_speed = 250
+small_perimeter_speed = 75
+solid_infill_acceleration = 2500
+solid_infill_speed = 150
+top_solid_infill_acceleration = 2500
+top_solid_infill_speed = 150
+travel_acceleration = 2500
+travel_speed = 250
+travel_speed_z = 10
+
+[print:Fast - M5C (0.4 mm nozzle) @ANKER]
+inherits = *common-M5C*
+notes = PRINT_COMPATIBLE\n P_FAST\n F_PLA__Basic\n
+compatible_printers_condition = printer_notes=~/.*(MACHINE_M5C_).*/ and printer_notes=~/.*(P_FAST).*/ and nozzle_diameter[0]==0.4
+layer_height = 0.25
+first_layer_height = 0.14
+perimeters = 2
+top_solid_layers = 4
+bottom_solid_layers = 3
+external_perimeter_acceleration = 3000
+perimeter_acceleration = 5000
+top_solid_infill_acceleration = 4000
+solid_infill_acceleration = 4000
+infill_acceleration = 5000
+bridge_acceleration = 500
+first_layer_acceleration = 2500
+first_layer_acceleration_over_raft = 0
+travel_acceleration = 5000
+default_acceleration = 5000
+# Speed
+perimeter_speed = 250
+small_perimeter_speed = 75
+external_perimeter_speed = 150
+infill_speed = 270
+solid_infill_speed = 100
+top_solid_infill_speed = 100
+support_material_speed = 150
+support_material_interface_speed = 100%
+bridge_speed = 20
+gap_fill_speed = 75
+overhang_speed_0 = 15
+overhang_speed_1 = 20
+overhang_speed_2 = 30
+overhang_speed_3 = 30
+travel_speed = 500
+travel_speed_z = 10
+first_layer_speed = 50
+first_layer_speed_over_raft = 30
+max_print_speed = 500
# When submitting new filaments please print the following temperature tower at 0.1mm layer height:
# https://www.thingiverse.com/thing:2615842
@@ -186,7 +447,7 @@ compatible_printers_condition = printer_model=~/(M5).*/ and nozzle_diameter[0]==
# So having some leeway to get good bed adhesion is not a luxury for many users
[filament:*common*]
-cooling = 0
+cooling = 1
compatible_printers =
extrusion_multiplier = 1
filament_cost = 0
@@ -218,13 +479,13 @@ temperature = 200
[filament:*PLA+*]
inherits = *common*
-bed_temperature = 60
+bed_temperature = 65
fan_below_layer_time = 100
filament_colour = #DDDDDD
filament_type = PLA+
filament_density = 1.24
filament_cost = 20
-first_layer_bed_temperature = 60
+first_layer_bed_temperature = 65
first_layer_temperature = 230
fan_always_on = 1
max_fan_speed = 100
@@ -243,12 +504,12 @@ filament_type = PETG
filament_density = 1.27
filament_cost = 30
first_layer_bed_temperature = 80
-first_layer_temperature = 260
+first_layer_temperature = 255
fan_always_on = 1
max_fan_speed = 50
min_fan_speed = 50
bridge_fan_speed = 100
-temperature = 260
+temperature = 255
[filament:*ABS*]
inherits = *common*
@@ -260,13 +521,13 @@ filament_type = ABS
filament_density = 1.04
filament_cost = 20
first_layer_bed_temperature = 90
-first_layer_temperature = 260
+first_layer_temperature = 255
fan_always_on = 0
max_fan_speed = 0
min_fan_speed = 0
bridge_fan_speed = 30
top_fan_speed = 0
-temperature = 260
+temperature = 255
[filament:Generic PLA @ANKER]
inherits = *PLA*
@@ -289,61 +550,91 @@ filament_vendor = Generic
# Common printer preset
[printer:*common*]
-printer_technology = FFF
-before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;{layer_z}
-between_objects_gcode =
-pause_print_gcode =
-deretract_speed = 60
-extruder_colour = #FCE94F
-extruder_offset = 0x0
-gcode_flavor = marlin
-silent_mode = 1
-remaining_times = 1
-machine_max_acceleration_e = 2500
-machine_max_acceleration_extruding = 2500
-machine_max_acceleration_retracting = 2500
-machine_max_acceleration_travel = 1500,1250
-machine_max_acceleration_x = 2500
-machine_max_acceleration_y = 2500
-machine_max_acceleration_z = 2500
-machine_max_feedrate_e = 100
-machine_max_feedrate_x = 300
-machine_max_feedrate_y = 300
-machine_max_feedrate_z = 20
-machine_max_jerk_e = 3
-machine_max_jerk_x = 15
-machine_max_jerk_y = 15
-machine_max_jerk_z = 0.3
-machine_min_extruding_rate = 0
-machine_min_travel_rate = 0
-layer_gcode = ;AFTER_LAYER_CHANGE\n;{layer_z}
+printer_vendor = AnkerMake
+# General
+## Size and coordinates
max_print_height = 250
-printer_notes =
-printer_settings_id =
-retract_before_travel = 3
-retract_before_wipe = 0
-retract_layer_change = 1
-retract_length_toolchange = 4
+z_offset = 0
+## Capabilities
+#extruders_count = 1
+single_extruder_multi_material = 0
+## Firmware
+gcode_flavor = marlin2
+thumbnails = 256x256
+thumbnails_format = PNG
+silent_mode = 0
+remaining_times = 1
+## Advanced
+use_relative_e_distances = 1
+use_firmware_retraction = 0
+use_volumetric_e = 0
+variable_layer_height = 1
+# Custom G-code
+start_gcode = M104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S{first_layer_bed_temperature[0]} ; set and wait for bed temp to stabilize\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize\nG28 ;Home\n;LAYER_COUNT:{total_layer_count}\n
+autoemit_temperature_commands = 1
+end_gcode = M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84
+before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;{layer_z}\n;LAYER:{layer_num+1}
+layer_gcode = ;AFTER_LAYER_CHANGE\nG92 E0
+toolchange_gcode =
+between_objects_gcode =
+color_change_gcode = M600
+pause_print_gcode = M601
+template_custom_gcode =
+# Machine limits
+## General
+### machine_limits_usage = emit_to_gcode time_estimate_only ignore
+machine_limits_usage = time_estimate_only
+## Maximum feedrates
+machine_max_feedrate_e = 100
+machine_max_feedrate_x = 500
+machine_max_feedrate_y = 500
+machine_max_feedrate_z = 50
+## Maximum accelerations
+machine_max_acceleration_e = 10000
+machine_max_acceleration_extruding = 10000
+machine_max_acceleration_retracting = 10000
+machine_max_acceleration_travel = 10000
+machine_max_acceleration_x = 10000
+machine_max_acceleration_y = 10000
+machine_max_acceleration_z = 10000
+## Jerk limits
+machine_max_jerk_x = 15, 15
+machine_max_jerk_y = 15, 15
+machine_max_jerk_z = 0.3, 0.3
+machine_max_jerk_e = 3, 3
+machine_min_extruding_rate = 0, 0
+machine_min_travel_rate = 0, 0
+# Extruder 1 2 3 4 5 6
+## Size
+nozzle_diameter = 0.4
+## Preview
+extruder_colour = #9BE198
+## Layer height limits
+min_layer_height = 0.08
+max_layer_height = 0.32
+## Position (for multi-extruder printers)
+extruder_offset = 0x0
+## Retraction
+retract_length = 3
retract_lift = 0
retract_lift_above = 0
retract_lift_below = 0
-retract_restart_extra = 0
-retract_restart_extra_toolchange = 0
retract_speed = 60
-single_extruder_multi_material = 0
-thumbnails = 64x64,256x256
-thumbnails_format = JPG
-toolchange_gcode =
-use_firmware_retraction = 0
-use_relative_e_distances = 0
-use_volumetric_e = 0
-variable_layer_height = 1
+deretract_speed = 0
+retract_restart_extra = 0
+retract_before_travel = 0.8
+retract_layer_change = 1
wipe = 0
-z_offset = 0
+retract_before_wipe = 0%
+## Retraction when tool is disabled (advanced settings for multi-extruder setups)
+retract_length_toolchange = 4
+retract_restart_extra_toolchange = 0
+# Notes
+printer_notes = Base printer notes is EMPTY!
+default_print_profile =
default_filament_profile = Generic PLA+ @ANKER
-start_gcode = M104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S{first_layer_bed_temperature[0]} ; set and wait for bed temp to stabilize\nM109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize\nG28 ;Home\nM420 S1; restore saved Auto Bed Leveling data\nG1 E10 F3600; push out retracted filament(fix for over retraction after prime)
-end_gcode = M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84
-
+printer_technology = FFF
+printer_settings_id =
[printer:*M5*]
inherits = *common*
bed_shape = 0x0,235-0,235x235,0x235
@@ -354,8 +645,19 @@ retract_speed = 60
deretract_speed = 60
retract_before_travel = 3
retract_before_wipe = 0%
-printer_notes = Don not 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_ANKERMAKE\nPRINTER_MODEL_M5
-
+printer_notes = MACHINE_M5_\n PRINTER_VENDOR_ANKERMAKE\n PRINTER_MODEL_M5\n
+[printer:*M5C*]
+inherits = *common*
+bed_shape = 0x0,220x0,220x220,0x220
+max_print_height = 250
+printer_model = M5C
+retract_length = 0.8
+retract_speed = 60
+deretract_speed = 60
+retract_before_travel = 3
+retract_before_wipe = 0%
+wipe = 1
+printer_notes = MACHINE_M5C_\n PRINTER_VENDOR_ANKERMAKE\n P_PRECISION P_NORMAL P_FAST\n
[printer:AnkerMake M5 (0.4 mm nozzle)]
inherits = *M5*
nozzle_diameter = 0.4
@@ -364,3 +666,11 @@ min_layer_height = 0.08
max_layer_height = 0.32
retract_lift_above = 0
default_print_profile = 0.2 mm OPTIMAL (0.4 mm nozzle) @ANKER
+[printer:AnkerMake M5C (0.4 mm nozzle)]
+inherits = *M5C*
+nozzle_diameter = 0.4
+printer_variant = 0.4
+min_layer_height = 0.08
+max_layer_height = 0.32
+retract_lift_above = 0
+default_print_profile = 0.2 mm OPTIMAL (0.4 mm nozzle) @ANKER
diff --git a/resources/profiles/Anker/M5C-bed.stl b/resources/profiles/Anker/M5C-bed.stl
new file mode 100644
index 0000000000..ea3b99845e
Binary files /dev/null and b/resources/profiles/Anker/M5C-bed.stl differ
diff --git a/resources/profiles/Anker/M5C-texture.svg b/resources/profiles/Anker/M5C-texture.svg
new file mode 100644
index 0000000000..4fcf959f66
--- /dev/null
+++ b/resources/profiles/Anker/M5C-texture.svg
@@ -0,0 +1 @@
+
diff --git a/resources/profiles/Anker/M5C-texture_v2.svg b/resources/profiles/Anker/M5C-texture_v2.svg
new file mode 100644
index 0000000000..4fcf959f66
--- /dev/null
+++ b/resources/profiles/Anker/M5C-texture_v2.svg
@@ -0,0 +1 @@
+
diff --git a/resources/profiles/Anker/M5C_thumbnail.png b/resources/profiles/Anker/M5C_thumbnail.png
new file mode 100644
index 0000000000..3491ec6bfa
Binary files /dev/null and b/resources/profiles/Anker/M5C_thumbnail.png differ
diff --git a/resources/profiles/Anker/M5C_thumbnail_v2.png b/resources/profiles/Anker/M5C_thumbnail_v2.png
new file mode 100644
index 0000000000..3491ec6bfa
Binary files /dev/null and b/resources/profiles/Anker/M5C_thumbnail_v2.png differ