{
    "type": "machine",
    "setting_id": "SM_U1",
    "name": "Snapmaker U1 (0.4 nozzle)",
    "from": "system",
    "instantiation": "true",
    "inherits": "fdm_U1",
    "printer_model": "Snapmaker U1",
    "printer_variant": "0.4",
    "auxiliary_fan": "1",
    "change_filament_gcode": ";===== date: 20251213=====================\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n{\nlocal max_speed_toolchange = 350.0;\nlocal wait_for_extruder_temp = true;\nposition[2] = position[2] + 2.0;\nlocal speed_toolchange = max_speed_toolchange;\nif travel_speed < max_speed_toolchange then\n      speed_toolchange = travel_speed;\nendif\n\"G91\nG1 Z1.5 F1800\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",
    "extruder_colour": [
        "#FCE94F",
        "#FCE94F",
        "#FCE94F",
        "#FCE94F"
    ],
    "extruder_offset": [
        "0x0",
        "0x0",
        "0x0",
        "0x0"
    ],
    "host_type": "octoprint",
    "long_retractions_when_cut": [
        "0",
        "0",
        "0",
        "0"
    ],
    "machine_end_gcode": " PRINT_END\nTIMELAPSE_STOP",
    "machine_max_acceleration_extruding": [
        "25000",
        "25000"
    ],
    "machine_max_acceleration_retracting": [
        "5000",
        "5000"
    ],
    "machine_max_acceleration_travel": [
        "25000",
        "25000"
    ],
    "machine_max_acceleration_x": [
        "25000",
        "25000"
    ],
    "machine_max_acceleration_y": [
        "25000",
        "25000"
    ],
    "machine_max_acceleration_z": [
        "500",
        "200"
    ],
    "machine_max_jerk_x": [
        "9",
        "9"
    ],
    "machine_max_jerk_y": [
        "9",
        "9"
    ],
    "machine_max_jerk_z": [
        "3",
        "0.4"
    ],
    "machine_max_speed_e": [
        "30",
        "25"
    ],
    "machine_max_speed_x": [
        "1000",
        "200"
    ],
    "machine_max_speed_y": [
        "1000",
        "200"
    ],
    "machine_max_speed_z": [
        "20",
        "12"
    ],
    "resonance_avoidance": "1",
    "min_resonance_avoidance_speed": "40",
    "max_resonance_avoidance_speed": "90",
    "machine_start_gcode": "SET_PRINT_AUTO_BED_LEVELING ENABLE=1\nSET_TIME_LAPSE_CAMERA ENABLE=1\n;===== date: 20251222 =====================\n\nPRINT_START\nDEFECT_DETECTION_START\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count}\nSET_PRINT_STATS_INFO CURRENT_LAYER=0\nTIMELAPSE_START\nM140 S{bed_temperature_initial_layer_single}\nM104 T{initial_extruder} S140\nM204 S10000\n\nG28 X Y\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\nG28 Z\n\n;===== 热床调平 =================\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; Original upstream: BED_MESH_CALIBRATE PROBE_COUNT=11,11\n\n;===== 画起始线 =================\nG90\nG1 Z1.5\nG0 X10 Y3 Z2 F18000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nM83\nG1 X110 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": "stainless_steel",
    "printable_area": [
        "0.5x1",
        "270.5x1",
        "270.5x271",
        "0.5x271"
    ],
    "printable_height": "270.05",
    "printer_settings_id": "MyToolChanger 0.4 nozzle - Copy",
    "retract_before_wipe": [
        "0%",
        "0%",
        "0%",
        "0%"
    ],
    "retract_length_toolchange": [
        "10",
        "10",
        "10",
        "10"
    ],
    "retract_lift_above": [
        "0",
        "0",
        "0",
        "0"
    ],
    "retract_lift_below": [
        "269",
        "269",
        "269",
        "269"
    ],
    "retract_lift_enforce": [
        "All Surfaces",
        "All Surfaces",
        "All Surfaces",
        "All Surfaces"
    ],
    "retract_restart_extra": [
        "0",
        "0",
        "0",
        "0"
    ],
    "retract_restart_extra_toolchange": [
        "0",
        "0",
        "0",
        "0"
    ],
    "retract_when_changing_layer": [
        "1",
        "1",
        "1",
        "1"
    ],
    "retraction_distances_when_cut": [
        "18",
        "18",
        "18",
        "18"
    ],
    "retraction_length": [
        "0.8",
        "0.8",
        "0.8",
        "0.8"
    ],
    "retraction_minimum_travel": [
        "1",
        "1",
        "1",
        "1"
    ],
    "retraction_speed": [
        "40",
        "40",
        "40",
        "40"
    ],
    "deretraction_speed": [
        "35",
        "35",
        "35",
        "35"
    ],
    "thumbnails": "48x48/PNG, 300x300/PNG",
    "travel_slope": [
        "3",
        "3",
        "3",
        "3"
    ],
    "wipe": [
        "1",
        "1",
        "1",
        "1"
    ],
    "wipe_distance": [
        "2",
        "2",
        "2",
        "2"
    ],
    "z_hop": [
        "0.4",
        "0.4",
        "0.4",
        "0.4"
    ],
    "z_hop_types": [
        "Auto Lift",
        "Auto Lift",
        "Auto Lift",
        "Auto Lift"
    ],
    "enable_filament_ramming": "0",
    "extruder_clearance_height_to_rod": "60",
    "extruder_clearance_height_to_lid": "130",
    "extruder_clearance_radius": "80",
    "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",
    "z_hop_when_prime": [
        "0",
        "0",
        "0",
        "0"
    ],
    "ramming_pressure_advance_value": "0.02",
    "tool_change_temprature_wait": "0",
    "printer_notes": "",
    "machine_pause_gcode": "M600",
    "default_bed_type": "Textured PEI Plate",
    "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\nSET_PRINT_STATS_INFO TOTAL_LAYER={total_layer_count}\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num+1}",
    "nozzle_volume": "143"
}