Files
OrcaSlicer/resources/profiles/Snapmaker/machine/Snapmaker U1 (0.4 nozzle).json
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

331 lines
11 KiB
JSON

{
"type": "machine",
"name": "Snapmaker U1 (0.4 nozzle)",
"inherits": "fdm_U1",
"from": "system",
"setting_id": "UeTP4RqAd7xAMHVE",
"instantiation": "true",
"printer_model": "Snapmaker U1",
"printer_variant": "0.4",
"auxiliary_fan": "1",
"change_filament_gcode": ";===== date: 20260607 =====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n; max_layer_z [max_layer_z]\n; max_print_height [max_print_height]\n; print_sequence [print_sequence]\n\n{\nlocal move_z = 1.5;\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\n\nif travel_speed < max_speed_toolchange then\n speed_toolchange = travel_speed;\nendif\n\nif print_sequence == \"by object\" then\n\n if max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\n endif\n\nendif\n\n\"G91\nG1 Z\" + move_z + \" F600\nG90\n\";\n\"G1 F\" + (speed_toolchange * 60) + \"\n\";\nif wait_for_extruder_temp and not((layer_num < 0) and (next_extruder == initial_tool)) then\n \"\n\";\n \"; \" + layer_num + \"\n\";\n if layer_num == 0 then\n \"M109 S\" + first_layer_temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n else\n \"M109 S\" + temperature[next_extruder] + \" T\" + next_extruder + \"\n\";\n endif\nendif\n\"M400\" + \"\n\";\n\"T\" + next_extruder + \"\n\";\nif filament_type[next_extruder] == \"PVA\" then\n\"SET_VELOCITY_LIMIT ACCEL=3000\n\";\nelse\nendif\nif previous_extruder != next_extruder and initial_extruder != next_extruder then\n\"SM_PRINT_PREEXTRUDE_FILAMENT INDEX=\" + next_extruder + \"\n\";\nendif\n\"G90\n\";\n}\n",
"deretraction_speed": [
"30",
"30",
"30",
"30",
"30",
"30",
"30",
"30"
],
"extruder_colour": [
"#FCE94F",
"#FCE94F",
"#FCE94F",
"#FCE94F"
],
"extruder_offset": [
"0x0",
"0x0",
"0x0",
"0x0"
],
"host_type": "octoprint",
"long_retractions_when_cut": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"machine_end_gcode": ";===== date: 20260605 =====================\n; layer [layer_num]\n; max_layer_z [max_layer_z]\n; print_sequence [print_sequence]\n\n{if print_sequence == \"by object\"}\n{\nlocal move_z = max_print_height;\n\nif max_layer_z < ((max_print_height - z_offset) - 2) then\n move_z = z_offset + min(((max_layer_z - z_offset) + 2), max_print_height);\nendif\n}\n\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{move_z} F600\n{endif}\n\nPRINT_END\nTIMELAPSE_STOP\n\n; U1 nozzle flow metadata, in logical filament order\n; filament_volume_type = {(nozzle_volume_type[filament_map[0]-1] == 1 ? \"high_flow\" : \"standard\")}{if size(filament_type) > 1},{(nozzle_volume_type[filament_map[1]-1] == 1 ? \"high_flow\" : \"standard\")}{endif}{if size(filament_type) > 2},{(nozzle_volume_type[filament_map[2]-1] == 1 ? \"high_flow\" : \"standard\")}{endif}{if size(filament_type) > 3},{(nozzle_volume_type[filament_map[3]-1] == 1 ? \"high_flow\" : \"standard\")}{endif}\n",
"machine_max_jerk_z": [
"3",
"0.4",
"3",
"0.4",
"3",
"0.4",
"3",
"0.4",
"3",
"0.4",
"3",
"0.4",
"3",
"0.4",
"3",
"0.4"
],
"machine_max_speed_e": [
"30",
"25",
"30",
"25",
"30",
"25",
"30",
"25",
"30",
"25",
"30",
"25",
"30",
"25",
"30",
"25"
],
"machine_max_speed_z": [
"20",
"12",
"20",
"12",
"20",
"12",
"20",
"12",
"20",
"12",
"20",
"12",
"20",
"12",
"20",
"12"
],
"machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20260128 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\nG28 X Y\nDEFECT_DETECT_NOODLE_FIRST\n;===== 床面异物检测 ========\nT{initial_extruder}\nG90\nDEFECT_DETECTION_DETECT_BED\n;===== 取放头检测 =================\nSM_PRINT_CHECK_SWITCH_EXTRUDER\n\n;===== 自动进料 & 挤出流量 & 预挤出 ======================\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=1 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=0\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=0\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=2 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=1\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=1\nSM_PRINT_EXTRUDER_PREHEAT EXTRUDER=3 TEMP=140\nSM_PRINT_AUTO_FEED EXTRUDER=2\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=2\nSM_PRINT_AUTO_FEED EXTRUDER=3\nSM_PRINT_FLOW_CALIBRATE EXTRUDER=3\nM104 S0 T0 A0\nM104 S0 T1 A0\nM104 S0 T2 A0\nM104 S0 T3 A0\nM104 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\n\n;===== 粗回零 =================\nT{initial_extruder}\nM106 S255\nM106 P2 S0\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 T{initial_extruder} S{nozzle_temperature[initial_extruder] - 90}\nROUGHLY_CLEAN_NOZZLE_WITH_DISCARD\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nG28 Z I140 J140\n\n;===== 检测钢板 =================\nDETECT_BED_PLATE\n\n;===== 深度清洁喷嘴 =================\nG90\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nM109 S{nozzle_temperature[initial_extruder] - 50}\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_1\nM104 S{nozzle_temperature[initial_extruder] - 90}\nG0 Z5 F10000\nMOVE_TO_DISCARD_FILAMENT_POSITION\nROUGHLY_CLEAN_NOZZLE\nMOVE_TO_XY_IDLE_POSITION_EXTRUDER\nFINELY_CLEAN_NOZZLE_STAGE_2\n\n;===== 精回零 =================\nM106 S255\nM109 S{nozzle_temperature[initial_extruder] - 90}\nM190 S{bed_temperature_initial_layer_single}\nM107 P2\nG90\nG0 Z5 F10000\nWAIT_CHAMBER_TEMP TIMEOUT=180\n{if curr_bed_type==\"High Temp Plate\"} \nG28 Z Z_OFFSET -0.07 \n{else} \nG28 Z \n{endif} \n\n\n;===== 热床调平 =================\n{if curr_bed_type==\"High Temp Plate\"} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 Z_OFFSET=-0.07\n{else} \n; Always pass `ADAPTIVE_MARGIN=0` because Orca has already handled `adaptive_bed_mesh_margin` internally\n; Make sure to set ADAPTIVE to 0 otherwise Klipper will use it's own adaptive bed mesh logic\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0\n{endif} \n\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X85 Y1 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X185 E15 F360\nG1 Z1.5\n\nG90\nM106 S0",
"machine_tool_change_time": "5",
"max_layer_height": [
"0.32",
"0.32",
"0.32",
"0.32"
],
"min_layer_height": [
"0.08",
"0.08",
"0.08",
"0.08"
],
"nozzle_diameter": [
"0.4",
"0.4",
"0.4",
"0.4"
],
"nozzle_type": [
"hardened_steel",
"hardened_steel",
"hardened_steel",
"hardened_steel",
"hardened_steel",
"hardened_steel",
"hardened_steel",
"hardened_steel"
],
"printable_area": [
"0.5x1",
"270.5x1",
"270.5x271",
"0.5x271"
],
"printable_height": "270.05",
"retract_before_wipe": [
"0%",
"0%",
"0%",
"0%",
"0%",
"0%",
"0%",
"0%"
],
"retract_length_toolchange": [
"10",
"10",
"10",
"10",
"10",
"10",
"10",
"10"
],
"retract_lift_above": [
"0",
"0",
"0",
"0",
"0",
"0",
"0",
"0"
],
"retract_lift_below": [
"269",
"269",
"269",
"269",
"269",
"269",
"269",
"269"
],
"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": [
"1.5",
"1.5",
"1.5",
"1.5",
"1.5",
"1.5",
"1.5",
"1.5"
],
"retraction_minimum_travel": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1"
],
"retraction_speed": [
"30",
"30",
"30",
"30",
"30",
"30",
"30",
"30"
],
"thumbnails": "48x48/PNG, 300x300/PNG",
"travel_slope": [
"3",
"3",
"3",
"3",
"3",
"3",
"3",
"3"
],
"wipe": [
"1",
"1",
"1",
"1",
"1",
"1",
"1",
"1"
],
"wipe_distance": [
"2",
"2",
"2",
"2",
"2",
"2",
"2",
"2"
],
"z_hop": [
"0.4",
"0.4",
"0.4",
"0.4",
"0.4",
"0.4",
"0.4",
"0.4"
],
"z_hop_types": [
"Auto Lift",
"Auto Lift",
"Auto Lift",
"Auto Lift",
"Auto Lift",
"Auto Lift",
"Auto Lift",
"Auto Lift"
],
"enable_filament_ramming": "0",
"extruder_clearance_height_to_rod": "27.5",
"extruder_clearance_radius": "72.5",
"machine_load_filament_time": "0",
"machine_unload_filament_time": "0",
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\nTIMELAPSE_TAKE_FRAME\nDEFECT_DETECTION_DETECT",
"default_print_profile": "0.20 Standard @Snapmaker U1 (0.4 nozzle)",
"machine_pause_gcode": "M600",
"layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count} CURRENT_LAYER={layer_num+1}",
"nozzle_volume": [
"143",
"143",
"143",
"143",
"143",
"143",
"143",
"143"
],
"resonance_avoidance": "1",
"min_resonance_avoidance_speed": "40",
"max_resonance_avoidance_speed": "90"
}