Files
OrcaSlicer/resources/profiles/Snapmaker/machine/fdm_U1.json
T
Eric McCann 83ee4f4476 U1: add HF nozzle variants and output flow type to avoid warnings on printer (#16043)
This is the bulk of the profile changes for U1 that led to the cooling
catiant connection.

The ugly end gcode is used by the printer's UI to complain if normal
nozzle is installed but the file was sliced for highflow.

[How to Download Pull Requests Artifacts for
Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
2026-10-02 18:06:13 +08:00

562 lines
14 KiB
JSON

{
"type": "machine",
"name": "fdm_U1",
"inherits": "fdm_toolchanger",
"from": "system",
"instantiation": "false",
"gcode_flavor": "klipper",
"single_extruder_multi_material": "0",
"bed_model": "Snapmaker U1_bed.stl",
"bed_texture": "Snapmaker U1_bed.svg",
"max_layer_height": [
"0.32",
"0.32",
"0.32",
"0.32"
],
"min_layer_height": [
"0.08",
"0.08",
"0.08",
"0.08"
],
"deretraction_speed": [
"30",
"30",
"30",
"30",
"30",
"30",
"30",
"30"
],
"extruder_colour": [
"#FCE94F",
"#FCE94F",
"#FCE94F",
"#FCE94F"
],
"extruder_offset": [
"0x0",
"0x0",
"0x0",
"0x0"
],
"long_retractions_when_cut": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"nozzle_diameter": [
"0.4",
"0.4",
"0.4",
"0.4"
],
"retract_before_wipe": [
"70%",
"70%",
"70%",
"70%",
"70%",
"70%",
"70%",
"70%"
],
"retract_length_toolchange": [
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2"
],
"retract_lift_above": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"retract_lift_below": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"retract_lift_enforce": [
"All Surfaces",
"All Surfaces",
"All Surfaces",
"All Surfaces",
"All Surfaces",
"All Surfaces",
"All Surfaces",
"All Surfaces"
],
"retract_restart_extra": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"retract_restart_extra_toolchange": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"retract_when_changing_layer": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1"
],
"retraction_distances_when_cut": [
"18",
"18",
"18",
"18",
"18",
"18",
"18",
"18"
],
"retraction_length": [
"0.8",
"0.8",
"0.8",
"0.8",
"0.8",
"0.8",
"0.8",
"0.8"
],
"retraction_minimum_travel": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1"
],
"retraction_speed": [
"30",
"30",
"30",
"30",
"30",
"30",
"30",
"30"
],
"travel_slope": [
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3"
],
"wipe": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1"
],
"wipe_distance": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1"
],
"z_hop": [
"0.4",
"0.4",
"0.4",
"0.4",
"0.4",
"0.4",
"0.4",
"0.4"
],
"z_hop_types": [
"Normal Lift",
"Normal Lift",
"Normal Lift",
"Normal Lift",
"Normal Lift",
"Normal Lift",
"Normal Lift",
"Normal Lift"
],
"purge_in_prime_tower": "0",
"machine_pause_gcode": "M601",
"change_filament_gcode": "",
"machine_start_gcode": "PRINT_START TOOL_TEMP={first_layer_temperature[initial_tool]} {if is_extruder_used[0]}T0_TEMP={first_layer_temperature[0]}{endif} {if is_extruder_used[1]}T1_TEMP={first_layer_temperature[1]}{endif} {if is_extruder_used[2]}T2_TEMP={first_layer_temperature[2]}{endif} {if is_extruder_used[3]}T3_TEMP={first_layer_temperature[3]}{endif} {if is_extruder_used[4]}T4_TEMP={first_layer_temperature[4]}{endif} {if is_extruder_used[5]}T5_TEMP={first_layer_temperature[5]}{endif} BED_TEMP=[first_layer_bed_temperature] TOOL=[initial_tool]\n\nM83\n; set extruder temp\n{if first_layer_temperature[0] > 0 and (is_extruder_used[0])}M104 T0 S{first_layer_temperature[0]}{endif}\n{if first_layer_temperature[1] > 0 and (is_extruder_used[1])}M104 T1 S{first_layer_temperature[1]}{endif}\n{if first_layer_temperature[2] > 0 and (is_extruder_used[2])}M104 T2 S{first_layer_temperature[2]}{endif}\n{if first_layer_temperature[3] > 0 and (is_extruder_used[3])}M104 T3 S{first_layer_temperature[3]}{endif}\n{if first_layer_temperature[4] > 0 and (is_extruder_used[4])}M104 T4 S{first_layer_temperature[4]}{endif}\n{if (is_extruder_used[0]) and initial_tool != 0}\n;\n; purge first tool\n;\nG1 F{travel_speed * 60}\nM109 T0 S{first_layer_temperature[0]}\nT0; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(0 == 0 ? 0 : (0 == 1 ? 120 : (0 == 2 ? 180 : 300)))} Y{(0 < 4 ? 0 : 3)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[0]}10{else}30{endif} X40 Z0.2 F{if filament_multitool_ramming[0]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X40 E9 F800 ; continue purging and wipe the nozzle\nG0 X{40 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{40 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[0]} F2400 ; retract\n{e_retracted[0] = 1.5 * retract_length[0]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[0] == 0 ? (first_layer_temperature[0] + standby_temperature_delta) : (idle_temperature[0]))} T0\n{endif}\n{if (is_extruder_used[1]) and initial_tool != 1}\n;\n; purge second tool\n;\nG1 F{travel_speed * 60}\nM109 T1 S{first_layer_temperature[1]}\nT1; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(1 == 0 ? 0 : (1 == 1 ? 120 : (1 == 2 ? 180 : 300)))} Y{(1 < 4 ? 0 : 3)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[1]}10{else}30{endif} X120 Z0.2 F{if filament_multitool_ramming[1]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X80 E9 F800 ; continue purging and wipe the nozzle\nG0 X{80 - 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{80 - 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[1]} F2400 ; retract\n{e_retracted[1] = 1.5 * retract_length[1]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[1] == 0 ? (first_layer_temperature[1] + standby_temperature_delta) : (idle_temperature[1]))} T1\n{endif}\n{if (is_extruder_used[2]) and initial_tool != 2}\n;\n; purge third tool\n;\nG1 F{travel_speed * 60}\nM109 T2 S{first_layer_temperature[2]}\nT2; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(2 == 0 ? 0 : (2 == 1 ? 120 : (2 == 2 ? 180 : 300)))} Y{(2 < 4 ? 0 : 3)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[2]}10{else}30{endif} X220 Z0.2 F{if filament_multitool_ramming[2]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X220 E9 F800 ; continue purging and wipe the nozzle\nG0 X{220 + 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{220 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[2]} F2400 ; retract\n{e_retracted[2] = 1.5 * retract_length[2]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[2] == 0 ? (first_layer_temperature[2] + standby_temperature_delta) : (idle_temperature[2]))} T2\n{endif}\n{if (is_extruder_used[3]) and initial_tool != 3}\n;\n; purge fourth tool\n;\nG1 F{travel_speed * 60}\nM109 T3 S{first_layer_temperature[3]}\nT3; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(3 == 0 ? 0 : (3 == 1 ? 120 : (3 == 2 ? 180 : 300)))} Y{(3 < 4 ? 0 : 3)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[3]}10{else}30{endif} X290 Z0.2 F{if filament_multitool_ramming[3]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X260 E9 F800 ; continue purging and wipe the nozzle\nG0 X{260 - 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{260 - 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[3]} F2400 ; retract\n{e_retracted[3] = 1.5 * retract_length[3]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[3] == 0 ? (first_layer_temperature[3] + standby_temperature_delta) : (idle_temperature[3]))} T3\n{endif}\n{if (is_extruder_used[4]) and initial_tool != 4}\n;\n; purge fifth tool\n;\nG1 F{travel_speed * 60}\nM109 T4 S{first_layer_temperature[4]}\nT4; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(4 == 0 ? 0 : (4 == 1 ? 120 : (4 == 2 ? 180 : 300)))} Y{(4 < 4 ? 0 : 3)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[4]}10{else}30{endif} X290 Z0.2 F{if filament_multitool_ramming[4]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X260 E9 F800 ; continue purging and wipe the nozzle\nG0 X{260 - 3} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{260 - 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[4]} F2400 ; retract\n{e_retracted[4] = 1.5 * retract_length[4]} ; update slicer internal retract variable\nG92 E0 ; reset extruder position\n\nM104 S{(idle_temperature[4] == 0 ? (first_layer_temperature[4] + standby_temperature_delta) : (idle_temperature[4]))} T4\n{endif}\n;\n; purge initial tool\n;\nG1 F{travel_speed * 60}\nM109 T{initial_tool} S{first_layer_temperature[initial_tool]}\nT{initial_tool}; pick the tool\nG92 E0 ; reset extruder position\n\nG0 X{(initial_tool == 0 ? 0 : (initial_tool == 1 ? 120 : (initial_tool == 2 ? 180 : 300)))} Y{(initial_tool < 4 ? 0 : 3)} Z10 F{(travel_speed * 60)} ; move close to the sheet's edge\nG0 E{if filament_multitool_ramming[initial_tool]}10{else}30{endif} X{(initial_tool == 0 ? 0 : (initial_tool == 1 ? 120 : (initial_tool == 2 ? 180 : 300))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 10)} Z0.2 F{if filament_multitool_ramming[initial_tool]}500{else}170{endif} ; purge while moving towards the sheet\nG0 X{(initial_tool == 0 ? 0 : (initial_tool == 1 ? 120 : (initial_tool == 2 ? 180 : 300))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40)} E9 F800 ; continue purging and wipe the nozzle\nG0 X{(initial_tool == 0 ? 0 : (initial_tool == 1 ? 120 : (initial_tool == 2 ? 180 : 300))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 3)} Z{0.05} F{8000} ; wipe, move close to the bed\nG0 X{(initial_tool == 0 ? 0 : (initial_tool == 1 ? 120 : (initial_tool == 2 ? 180 : 300))) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 40) + ((initial_tool == 0 or initial_tool == 2 ? 1 : -1) * 3 * 2)} Z0.2 F{8000} ; wipe, move quickly away from the bed\nG1 E{- 1.5 * retract_length[initial_tool]} F2400 ; retract\n{e_retracted[initial_tool] = 1.5 * retract_length[initial_tool]}\nG92 E0 ; reset extruder position\n",
"scan_first_layer": "0",
"nozzle_type": [
"undefine",
"undefine",
"undefine",
"undefine",
"undefine",
"undefine",
"undefine",
"undefine"
],
"auxiliary_fan": "0",
"support_multi_bed_types": "1",
"default_bed_type": "Textured PEI Plate",
"printable_area": [
"0.5x1",
"270.5x1",
"270.5x271",
"0.5x271"
],
"printable_height": "270.05",
"bed_mesh_min": "3,3",
"bed_mesh_max": "267,267",
"printer_agent": "snapmaker",
"printer_extruder_variant": [
"Direct Drive Standard",
"Direct Drive High Flow",
"Direct Drive Standard",
"Direct Drive High Flow",
"Direct Drive Standard",
"Direct Drive High Flow",
"Direct Drive Standard",
"Direct Drive High Flow"
],
"printer_extruder_id": [
"1",
"1",
"2",
"2",
"3",
"3",
"4",
"4"
],
"extruder_variant_list": [
"Direct Drive Standard,Direct Drive High Flow",
"Direct Drive Standard,Direct Drive High Flow",
"Direct Drive Standard,Direct Drive High Flow",
"Direct Drive Standard,Direct Drive High Flow"
],
"default_nozzle_volume_type": [
"Standard",
"Standard",
"Standard",
"Standard"
],
"machine_max_jerk_e": [
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5",
"2.5"
],
"machine_max_acceleration_y": [
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000"
],
"machine_max_acceleration_e": [
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000"
],
"machine_max_jerk_x": [
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9"
],
"machine_max_jerk_y": [
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9",
"9"
],
"machine_max_acceleration_extruding": [
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000"
],
"machine_max_speed_y": [
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200"
],
"machine_max_speed_e": [
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25",
"25"
],
"machine_max_acceleration_retracting": [
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000",
"5000"
],
"machine_max_acceleration_x": [
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000"
],
"machine_max_speed_x": [
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200"
],
"machine_max_speed_z": [
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12",
"12"
],
"machine_max_acceleration_z": [
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200",
"500",
"200"
],
"machine_max_acceleration_travel": [
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000",
"20000"
],
"machine_max_jerk_z": [
"0.2",
"0.4",
"0.2",
"0.4",
"0.2",
"0.4",
"0.2",
"0.4",
"0.2",
"0.4",
"0.2",
"0.4",
"0.2",
"0.4",
"0.2",
"0.4"
]
}