# Print profiles for the Ultimaker printers.
# https://github.com/prusa3d/PrusaSlicer-settings/issues/143
# author: https://github.com/foreachthing
# author: https://github.com/ansonl

[vendor]
repo_id = non-prusa-fff
# Vendor name will be shown by the Config Wizard.
name = Ultimaker

# Configuration version of this file. Config file will only be installed, if the config_version differs.
# This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 2.1.0

# Where to get the updates from?
config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Ultimaker/

# The printer models will be shown by the Configuration Wizard in this order,
# also the first model installed & the first nozzle installed will be activated after install.
# Printer model name will be shown by the installation wizard.

[printer_model:ULTIMAKER2]
name = Ultimaker 2
variants = 0.4
technology = FFF
bed_model = ultimaker2_bed.stl
bed_texture = ultimaker2.svg
thumbnail = ULTIMAKER2_thumbnail_v2.png
default_materials = Generic PLA; Generic PETG @ULTIMAKER; Generic ABS @ULTIMAKER

[printer_model:ULTIMAKERSline]
name = Ultimaker S-line
variants = 0.4
technology = FFF
bed_texture = ultimaker2.svg
default_materials = Generic PLA

# All presets starting with asterisk, for example *common*, are intermediate and they will
# not make it into the user interface.

# Common print preset
[print:*common*]
avoid_crossing_perimeters = 1
avoid_crossing_perimeters_max_detour = 0
bottom_fill_pattern = rectilinear
bottom_solid_layers = 4
bottom_solid_min_thickness = 0
bridge_acceleration = 0
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 35
brim_separation = 0
brim_type = outer_only
brim_width = 0
clip_multipart_objects = 0
compatible_printers = 
compatible_printers_condition = 
complete_objects = 0
default_acceleration = 0
dont_support_bridges = 0
draft_shield = disabled
elefant_foot_compensation = 0.08
ensure_vertical_shell_thickness = 0
external_perimeter_extrusion_width = 0.4
external_perimeter_speed = 50%
external_perimeters_first = 0
extra_perimeters = 1
extrusion_width = 0.4
fill_angle = 45
fill_density = 20%
fill_pattern = grid
first_layer_acceleration = 0
first_layer_acceleration_over_raft = 0
first_layer_extrusion_width = 0.4
first_layer_height = 0.2
first_layer_speed = 25%
first_layer_speed_over_raft = 25%
fuzzy_skin = none
fuzzy_skin_point_dist = 0.8
fuzzy_skin_thickness = 0.3
gap_fill_enabled = 1
gap_fill_speed = 20
gcode_comments = 1
gcode_label_objects = 0
infill_acceleration = 0
infill_anchor = 600%
infill_anchor_max = 50
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0.4
infill_first = 1
infill_only_where_needed = 0
infill_overlap = 35%
infill_speed = 70
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 = 100
max_volumetric_speed = 0
min_skirt_length = 2
mmu_segmented_region_max_width = 0
notes = Ultimaker, 0.4 mm Nozzle
only_retract_when_crossing_perimeters = 1
ooze_prevention = 1
output_filename_format = {input_filename_base}_{layer_height}mm_{filament_type[0]}_{printer_model}_{print_time}.gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0.4
perimeter_speed = 50
perimeters = 2
post_process = 
print_settings_id = 
raft_contact_distance = 0.1
raft_expansion = 1.5
raft_first_layer_density = 90%
raft_first_layer_expansion = 3
raft_layers = 0
resolution = 0
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 = 75%
solid_infill_below_area = 10
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0.4
solid_infill_speed = 75%
spiral_vase = 0
standby_temperature_delta = -30
support_material = 0
support_material_angle = 45
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.2
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0.4
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 2
support_material_interface_pattern = auto
support_material_interface_spacing = 0.2
support_material_interface_speed = 100%
support_material_pattern = rectilinear-grid
support_material_spacing = 4
support_material_speed = 60
support_material_style = grid
support_material_synchronize_layers = 0
support_material_threshold = 0
support_material_with_sheath = 0
support_material_xy_spacing = 0.8
thick_bridges = 1
thin_walls = 0
threads = 8
top_fill_pattern = rectilinear
top_infill_extrusion_width = 0.4
top_solid_infill_speed = 50%
top_solid_layers = 4
top_solid_min_thickness = 0
travel_speed = 150
travel_speed_z = 0
wipe_tower = 0
wipe_tower_bridging = 10
wipe_tower_brim_width = 2
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:*0.10mm*]
inherits = *common*
layer_height = 0.10
bottom_solid_layers = 8
top_solid_layers = 8

[print:*0.12mm*]
inherits = *common*
layer_height = 0.12
perimeters = 3
bottom_solid_layers = 6
top_solid_layers = 7

[print:*0.20mm*]
inherits = *common*
layer_height = 0.20
bottom_solid_layers = 4
top_solid_layers = 5

[print:*0.25mm*]
inherits = *common*
layer_height = 0.25
bottom_solid_layers = 3
top_solid_layers = 4

[print:0.10mm FINE @ULTIMAKER]
inherits = *0.10mm*
compatible_printers_condition = (printer_model=="ULTIMAKER2" or printer_model=="ULTIMAKERSline") and nozzle_diameter[0]==0.4

[print:0.12mm DETAIL @ULTIMAKER]
inherits = *0.12mm*
support_material_extrusion_width = 0.38
compatible_printers_condition = (printer_model=="ULTIMAKER2" or printer_model=="ULTIMAKERSline") and nozzle_diameter[0]==0.4

[print:0.20mm NORMAL @ULTIMAKER]
inherits = *0.20mm*
support_material_extrusion_width = 0.38
compatible_printers_condition = (printer_model=="ULTIMAKER2" or printer_model=="ULTIMAKERSline") and nozzle_diameter[0]==0.4

[print:0.25mm DRAFT @ULTIMAKER]
inherits = *0.25mm*
support_material_extrusion_width = 0.38
compatible_printers_condition = (printer_model=="ULTIMAKER2" or printer_model=="ULTIMAKERSline") and nozzle_diameter[0]==0.4

# Common filament preset
[filament:*common*]
cooling = 0
compatible_printers = 
extrusion_multiplier = 1
filament_cost = 0
filament_density = 0
filament_diameter = 2.85
filament_notes = ""
filament_settings_id = ""
filament_soluble = 0
min_print_speed = 5
slowdown_below_layer_time = 6
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_ULTIMAKER.*/

[filament:*PLA*]
inherits = *common*
bed_temperature = 60
fan_below_layer_time = 100
filament_colour = #C0C0C0
filament_max_volumetric_speed = 0
filament_type = PLA
filament_density = 1.24
first_layer_bed_temperature = 55
first_layer_temperature = 205
fan_always_on = 1
cooling = 1
min_fan_speed = 100
max_fan_speed = 100
bridge_fan_speed = 100
disable_fan_first_layers = 3
temperature = 210

[filament:*PET*]
inherits = *common*
fan_below_layer_time = 15
filament_colour = #C0C0C0
filament_max_volumetric_speed = 0
filament_type = PETG
filament_density = 1.27
first_layer_bed_temperature = 85
bed_temperature = 85
first_layer_temperature = 240
temperature = 235
fan_always_on = 1
cooling = 1
min_fan_speed = 20
max_fan_speed = 40
bridge_fan_speed = 40
slowdown_below_layer_time = 15
min_print_speed = 10
disable_fan_first_layers = 3

[filament:*ABS*]
inherits = *common*
fan_below_layer_time = 15
filament_colour = #C0C0C0
filament_max_volumetric_speed = 0
filament_type = ABS
filament_density = 1.10
first_layer_bed_temperature = 80
bed_temperature = 80
first_layer_temperature = 240
temperature = 235
fan_always_on = 1
cooling = 1
min_fan_speed = 5
max_fan_speed = 5
bridge_fan_speed = 10
slowdown_below_layer_time = 15
min_print_speed = 10
disable_fan_first_layers = 3

[filament:Generic PLA @ULTIMAKER]
inherits = *PLA*
filament_vendor = Generic
filament_cost = 

[filament:Generic PETG @ULTIMAKER]
inherits = *PET*
filament_vendor = Generic
filament_cost = 

[filament:Generic ABS @ULTIMAKER]
inherits = *ABS*
filament_vendor = Generic
filament_cost = 

# Common printer preset
[printer:*common*]
printer_technology = FFF
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;M117 Layer [layer_num];\n;LAYER:[layer_num]
between_objects_gcode = 
deretract_speed = 0
extruder_colour = #F9A800;#00387B
gcode_flavor = marlin
silent_mode = 0
remaining_times = 0
machine_max_acceleration_e = 10000
machine_max_acceleration_extruding = 3000
machine_max_acceleration_retracting = 3000
machine_max_acceleration_x = 9000
machine_max_acceleration_y = 9000
machine_max_acceleration_z = 100
machine_max_feedrate_e = 120
machine_max_feedrate_x = 300
machine_max_feedrate_y = 300
machine_max_feedrate_z = 40
machine_max_jerk_e = 10
machine_max_jerk_x = 20
machine_max_jerk_y = 20
machine_max_jerk_z = 0.4
machine_min_extruding_rate = 0
machine_min_travel_rate = 0
layer_gcode = 
octoprint_apikey = 
octoprint_host = 
printer_notes = 
printer_settings_id = 
retract_before_travel = 1.2,1.2
retract_before_wipe = 0%,0%
retract_layer_change = 1
retract_length = 6.5,6.5
retract_length_toolchange = 16,16
retract_lift = 0
retract_lift_above = 0
retract_lift_below = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 25,25
serial_port = 
single_extruder_multi_material = 0
toolchange_gcode = 
use_firmware_retraction = 0
use_relative_e_distances = 0
use_volumetric_e = 0
variable_layer_height = 0
wipe = 0
z_offset = 0
extruder_clearance_height = 50
extruder_clearance_radius = 60

[printer:Ultimaker 2]
inherits = *common*
printer_model = ULTIMAKER2
bed_shape = 0x0,224x0,224x225,0x225
max_print_height = 212
printer_variant = 0.4
printer_notes = Dont 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_ULTIMAKER\nPRINTER_MODEL_ULTIMAKER2
nozzle_diameter = 0.4
default_print_profile = 0.20mm NORMAL @ULTIMAKER
default_filament_profile = Generic PLA @ULTIMAKER
start_gcode = ; Printer_Settings_ID: [printer_settings_id]\n\n; # # # # # # START Header\nG21 		; metric values\nG90 		; absolute positioning\nM82 		; set extruder to absolute mode\nM107 		; start with the fan off\n\nM140 S[first_layer_bed_temperature]	; start bed heating\n\nG28 X0 Y0 Z0	; move X/Y/Z to endstops\nG1 X1 Y6 F15000	; move X/Y to start position\nG1 Z35 F9000	; move Z to start position\n\n; Wait for bed and nozzle temperatures\nM190 S{first_layer_bed_temperature[0] - 5}	; wait for bed temperature - 5\nM140 S[first_layer_bed_temperature]	; continue bed heating\nM109 S[first_layer_temperature]	; wait for nozzle temperature\n\n; Purge and prime\nM83 		; set extruder to relative mode\nG92 E0           ; reset extrusion distance\nG0 X0 Y1 F10000\nG1 F150 E20 ; compress the bowden tube\nG1 E-8 F1200\nG0 X30 Y1 F5000    \nG0 F1200 Z{first_layer_height/2} ; Cut the connection to priming blob\nG0 X100 F10000 ; disconnect with the prime blob\nG0 X50         ; Avoid the metal clip holding the Ultimaker glass plate\nG0 Z0.2 F720\nG1 E8 F1200\nG1 X80 E3 F1000  ; intro line 1\nG1 X110 E4 F1000 ; intro line 2\nG1 X140 F600        ; drag filament to decompress bowden tube\nG1 X100 F3200       ; wipe backwards a bit\nG1 X150 F3200       ; back to where there is no plastic: avoid dragging\nG92 E0           ; reset extruder reference\nM82 		; set extruder to absolute mode\n\n; # # # # # # END Header
end_gcode = ; # # # # # # START Footer\nG91 			; relative coordinates\n;G1 E-1 F1200		; retract the filament\nG1 Z+15  X-10 Y-10 E-7  F6000		; move Z a bit\n; G1 X-10 Y-10 F6000	; move XY a bit\nG1 E-5.5 F300		; retract the filament\nG28 X0 Y0		; move X/Y to min endstops, so the head is out of the way\nM104 S0			; extruder heater off\nM140 S0			; heated bed heater off (if you have it)\nM84 			; disable motors\n; # # # # # # END Footer\n
max_layer_height = 0.3
min_layer_height = 0.06

[printer:Ultimaker 2 DXUv2]
inherits = Ultimaker 2
printer_model = ULTIMAKER2
bed_shape = 0x0,224x0,224x225,0x225
extruder_offset = 0x0,0x0 ; stock DXUv2 offset is X18 Y0 but this should be applied in firmware and PS does not provide option to turn off extruder offset correction so we leave it at 0 in slicer
printer_variant = 0.4
nozzle_diameter = 0.4,0.4
gcode_flavor = marlin2
default_print_profile = 0.20mm NORMAL @ULTIMAKER
default_filament_profile = Generic PLA @ULTIMAKER
toolchange_gcode = {if previous_extruder>= 0}\nM104 S{temperature[previous_extruder] + standby_temperature_delta}\n{endif}\n\nM104 T{next_extruder} S{temperature[next_extruder]}\n\nT{next_extruder}\nM109 S{temperature[next_extruder]}
start_gcode = ; Printer_Settings_ID: [printer_settings_id]\n; DXUv2 improved PS start priming Gcode for dual nozzles for multi-material print\nM355 S1 P25 ; Turn on case light dim\nM190 S[first_layer_bed_temperature]\nG28 ; Home all\n;M420 S1 ; Enable and load bed mesh\nG29 ; Run automatic bed leveling. Comment this line out if auto bed leveling is not desired.\nM104 T0 S{temperature[0] + standby_temperature_delta} ; Preheat T0 to standby temp\nM104 T1 S{temperature[1] + standby_temperature_delta} ; Preheat T1 to standby temp\nG21 ; Metric values\nG90 ; Absolute positioning\nM82 ; Set extruder to absolute mode\nM107 ; Start with the fan off\nM200 D0 T0 ; Reset filament diameter\nM200 D0 T1 ; Reset filament diameter\nG0 X200 F7200 ; Move to safe X and Y location from right side after ending ABL homing. Move X before Y to avoid hitting switching lever.\nG1 Y150 F7200\n; Prime routine for T1 in normally \nT1 ; move to the nozzle 2\nM104 T1 S{temperature[1]} ; Start heating up T1\nG0 Z10 F2400 ; move the platform down to 10mm\nM109 T1 S{temperature[1]} ; Heat up and wait for T1\nG0 Y150 F7200 ; Move printhead to safe Y location to move right.\nG0 X50 Y1 F7200 ; Add HOTEND_OFFSET_Y index 1 to Y0 (or forward-most safe Y location when T1 is active) to get Gcode Y parameter\nG0 X95 Z0.3 F2400 ; lower nozzle\nG92 E0 ; reset E location\nG1 X225 Y1 Z0.3 E{retract_length_toolchange[1]} F1500 ; Add HOTEND_OFFSET_X index 1 to X217 (or right-most safe X location when T1 is active) to get actual Gcode X parameter.\nG3 X235 Y11 I0 J10 F7200\nG0 X235 Y11 Z0.3 F7200\nM104 T1 S{temperature[1] + standby_temperature_delta} ; Start cooling down nozzle to reduce oozing\nG92 E0\nG1 Y70 E3 F1000 ; intro line\nM104 T1 S{temperature[1] + standby_temperature_delta}\nG92 E0 \nG1 E-{retract_length_toolchange[1]} F1200 ; retract\nG0 Y105 F18000 ; break line\nG0 Y150 Z10 F2400 ; raise nozzle\n; Prime routine for T0\nT0 ; move to the nozzle 1\nM104 T0 S{temperature[0]} ; Start heating up T0\nG0 Z10 F2400\nM109 T0 S{temperature[0]}\nG0 Y150 F7200 ; Move printhead to safe Y location to move right.\nG0 X32 Y3 F7200\nG0 X77 Z0.3 F2400\nG92 E0 ; reset E location\nG1 X207 Y3 Z0.3 E{retract_length_toolchange[0]} F1500\nG3 X217 Y13 I0 J10 F7200\nG0 X217 Y13 Z0.3 F7200\nM104 T0 S{temperature[0] + standby_temperature_delta} ; Start cooling down nozzle to reduce oozing\nG92 E0 ; reset E location\nG1 Y72 E3 F1000 ; intro line\nM104 T0 S{temperature[0] + standby_temperature_delta}\nM104 T{initial_extruder} S{temperature[initial_extruder]} ; Start heating initial nozzle. Do not wait.\nG92 E0\nG1 E-{retract_length_toolchange[0]} F1200 ; retract\nG0 Y105 F18000 ; break line\nG0 Y150 Z10 F2400 ; raise nozzle\n; Final prime and wipe sequence for initial extruder (usually T0)\nT{initial_extruder} ; move to the initial nozzle used for print\nM400 ;finish all moves\nG0 Z20 F2400\nG0 X212 F7200\nG0 Y70 F7200\nM109 T{initial_extruder} S{temperature[initial_extruder]} ; Wait for initial nozzle to reach temp\nG92 E0\nG1 E{retract_length_toolchange[initial_extruder]} F1200 ; prime by switching length\nG0 X217 Y50 Z0.5 F7200\nG92 E0\nG0 Y9.4 Z0.5 E3 F7200\nG2 X212 Y3.4 Z0.4 I-6 J0 F7200\nM104 T{initial_extruder} S{first_layer_temperature[initial_extruder]} ; Start heating to first layer temp\nG0 X207 Y3.4 Z0.4 F7200\nG2 X205 Y5.4 Z0.3 I0 J2 F7200\nG0 X205 Y5.4 Z0.3 F7200\nG1 Y10 F18000 ; break line\nG92 E0\nG1 Y50 E2 F1000 ; extrude line\nG92 E0\nG1 E-0.5 F1500 ; retract slightly\nG1 Y100 F18000 ; break line\nG92 E0\nM355 S1 P255; Turn on case light brighter\n;end of startup sequence
end_gcode = ;End G-code\nG91 ;Relative movement\nG0 X-8.0 Y-8.0 Z3.5 E-4.5 F18000 ;Wiping+material retraction ;increase bed lower 0.5>5.0 and add Y movement\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\nG90 ;Disable relative movement\nM400 ;wait for all moves in planner to complete\nG90 ;absolute positioning\nM104 S0 T0 ;extruder heater off\nM104 S0 T1\nM140 S0 ;turn off bed\nT0 ; move to the first head\nG27; park toolhead\nM107 ;fan off\nM355 S0;turn off case light
max_layer_height = 0.3
min_layer_height = 0.06

[printer:*sline*]
printer_model = ULTIMAKERSline
extruder_offset = 0x0,22x0
printer_notes = Dont 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_ULTIMAKER\nPRINTER_MODEL_ULTIMAKERSline
toolchange_gcode = {if previous_extruder>= 0}\nM104 S{temperature[previous_extruder] + standby_temperature_delta}\n{endif}\n\nM104 T{next_extruder} S{temperature[next_extruder]}\n\nG91\nG0 Z2\nG90\nM82\n\nT{next_extruder}\nM109 S{temperature[next_extruder]}\n\nG91\nG0 Z-2\nG90\nM82\nG92 E0 ; reset extrusion distance
start_gcode = ; Delete the first 'generated by PrusaSlicer' line to make gcode printable on Ultimaker S-line\n\n;START_OF_HEADER\n; Printer_Settings_ID: [printer_settings_id]\n\n;ULTIMAKER GRIFFIN HEADER\n;HEADER_VERSION:0.1\n;FLAVOR:Griffin\n;GENERATOR.NAME:PrusaSlicer\n;GENERATOR.VERSION:5.4.0\n;GENERATOR.BUILD_DATE:{year}-{month}-{day}\n;TARGET_MACHINE.NAME:Ultimaker S7\n;EXTRUDER_TRAIN.0.INITIAL_TEMPERATURE:{first_layer_temperature[0]}\n;EXTRUDER_TRAIN.0.MATERIAL.VOLUME_USED:{extruded_volume[0]}\n;EXTRUDER_TRAIN.0.MATERIAL.GUID:0f12978a-8e3c-4147-b9ca-726d5ed59368\n;EXTRUDER_TRAIN.0.NOZZLE.DIAMETER:{nozzle_diameter[0]}\n;EXTRUDER_TRAIN.0.NOZZLE.NAME:AA {nozzle_diameter[0]}\n;EXTRUDER_TRAIN.1.INITIAL_TEMPERATURE:{temperature[1] + standby_temperature_delta}\n;EXTRUDER_TRAIN.1.MATERIAL.VOLUME_USED:{extruded_volume[1]}\n;EXTRUDER_TRAIN.1.MATERIAL.GUID:0f12978a-8e3c-4147-b9ca-726d5ed59368\n;EXTRUDER_TRAIN.1.NOZZLE.DIAMETER:{nozzle_diameter[0]}\n;EXTRUDER_TRAIN.1.NOZZLE.NAME:AA {nozzle_diameter[0]}\n;BUILD_PLATE.INITIAL_TEMPERATURE:[first_layer_bed_temperature]\n;BUILD_VOLUME.TEMPERATURE:28\n;PRINT.TIME:0\n;PRINT.GROUPS:1\n;PRINT.SIZE.MIN.X:{print_bed_min[0]}\n;PRINT.SIZE.MIN.Y:{print_bed_min[1]}\n;PRINT.SIZE.MIN.Z:0\n;PRINT.SIZE.MAX.X:{print_bed_max[0]}\n;PRINT.SIZE.MAX.Y:{print_bed_max[1]}\n;PRINT.SIZE.MAX.Z:{max_print_height}\n;SLICE_UUID:32daaf1d-f868-4a8e-ad06-8536b153e789\n;END_OF_HEADER\nT0\nM82 ;absolute extrusion mode\n\nG21 ; metric values\nG90 ; absolute positioning\nM107 ; start with the fan off\n\nM140 S{first_layer_bed_temperature[initial_extruder]} ; start bed heating\n\nG28 ; home if supported\nG1 X1 Y6 F15000 ; move X/Y to start position\nG1 Z35 F9000 ; move Z to start position\n\nM104 S{temperature[initial_extruder] + standby_temperature_delta} ; heat nozzle\n\nG280 S1 ; ultimaker home\n\n;To skip adaptive bed mesh probing uncomment G0 commands before ;LAYER:1\n;G0 X{print_bed_min[0]} Y{print_bed_max[1]}\n;G0 X{print_bed_min[0]} Y{print_bed_min[1]}\n;G0 X{print_bed_max[0]} Y{print_bed_min[1]}\n;G0 X{print_bed_max[0]} Y{print_bed_max[1]}\n;LAYER:1\n\n; purge retract_length_toolchange due to unknown state\n; prime extruders next to each other to verify extruder offset calibration\n\n; prime T0\nM104 S{first_layer_temperature[0]} T0 ; start heat nozzle temperature\nT0\nM109 S{first_layer_temperature[0]} T0 ; wait for nozzle temperature\nG90\nM82\nG0 X5 Y100 Z0.3 F7200\nG92 E0\nG1 X5 Y10 E1.9 F1000\nG0 X5 Y1 Z0.3 F7200\nG92 E0\nG1 X{print_bed_max[0]-30} Y1 E5.553 F1000\nG0 X{print_bed_max[0]-30} Y1.5 F7200\nG92 E0\nG1 X10 Y1.5 E5.458 F1000\nG0 X10 Y1.9 F7200\nM104 S{temperature[initial_extruder] + standby_temperature_delta} ; cool nozzle\nM104 S{first_layer_temperature[1]} T1 ; start heat next nozzle temperature\nG92 E0\nG1 X{print_bed_max[0]-28} Y1.9 E5.489 F1000\nG92 E0\nG1 E-3.5 F1200\nG0 X{print_bed_max[0]-20} Y3 F18000\nG0 X{print_bed_max[0]-15} Y10 Z3 F2400\n\nG0 X30 Y10 Z0.3 F7200\nG92 E0\nG1 E3.5 F1200\nG92 E0\nG0 Y110 E1.85 F1000\nG92 E0\nG1 E-{retract_length_toolchange[0]} F1200\nG0 Y150 F18000\nG0 Y{print_bed_max[1]} Z5 F18000\n\n; prime T1\nT1\nM109 S{first_layer_temperature[1]} T1 ; wait for nozzle temperature\nG90\nM82\nG0 X5 Y100 Z0.3 F7200\nG0 Y10 E1.9 F1000\nG0 Y2.5 F7200\nG92 E0\nG1 X{print_bed_max[0]-30} Y2.5 E5.553 F1000\nG0 X{print_bed_max[0]-30} Y2.9 F7200\nG92 E0\nG1 X10 Y2.9 E5.458 F1000\nG0 X10 Y3.3 F7200\nM104 S{temperature[1] + standby_temperature_delta} ; cool nozzle\nM104 S{first_layer_temperature[initial_extruder]} ; start heating initial nozzle\nG92 E0\nG1 X{print_bed_max[0]-28} Y3.3 E5.489 F1000\nG92 E0\nG1 E-3.5 F1200 ;retract just a little because we don't have a way to tell the slicer T1 filament position when it starts printing from E0\nG0 X{print_bed_max[0]-20} Y5 F18000\nG0 X{print_bed_max[0]-15} Y15 Z3 F2400\n\n;minus extruder1 offset X 22 which macro is not supported in start gcode\nG0 X{30+nozzle_diameter[1]-22} Y15 Z0.3 F7200\nG92 E0\nG1 E3.5 F1200\nG92 E0\nG0 Y115 E1.85 F1000\nG92 E0\nG1 E-3.5 F1200\nG0 Y150 F18000\nG0 Y{print_bed_max[1]} Z5 F18000\n\n; switch to initial nozzle\nT{initial_extruder}\nM109 S{first_layer_temperature[initial_extruder]} ; wait for nozzle temperature\nG0 X{print_bed_max[0]-30} Y5 Z10 F7200\nG0 X25 Y10 Z5\nG0 X25 Y20 Z0.3\nM82 ;absolute extrusion mode\nG92 E0\nG1 Y30 E{retract_length_toolchange[initial_extruder]} F1200 ;prime to set filament location for prusaslicer generated initial retract\nG92 E0\n\n;END Start-gcode
end_gcode = ;End-gcode\nM104 S0\nM104 S0 T0\nM104 S0 T1\nG0 X5 Y5 Z{max_print_height} F2000\nM140 S0\nM106 S0\nM84 ; disable motors\n
max_layer_height = 0.3
min_layer_height = 0.06

[printer:Ultimaker S3]
inherits = *common*; *sline*
printer_model = ULTIMAKERSline
bed_shape = 0x0,230x0,230x190,0x190
max_print_height = 200
printer_variant = 0.4
nozzle_diameter = 0.4,0.4
default_print_profile = 0.20mm NORMAL @ULTIMAKER
default_filament_profile = Generic PLA @ULTIMAKER

[printer:Ultimaker S5/S7]
inherits = *common*; *sline*
printer_model = ULTIMAKERSline
bed_shape = 0x0,330x0,330x240,0x240
max_print_height = 300
printer_variant = 0.4
nozzle_diameter = 0.4,0.4
default_print_profile = 0.20mm NORMAL @ULTIMAKER
default_filament_profile = Generic PLA @ULTIMAKER
