Skip to content

Instantly share code, notes, and snippets.

@chrisns
Created July 11, 2025 16:02
Show Gist options
  • Save chrisns/a043989322f116c9648437edce64f3de to your computer and use it in GitHub Desktop.
Save chrisns/a043989322f116c9648437edce64f3de to your computer and use it in GitHub Desktop.
snapmaker a350 dual bs profile gcode
; Model: Snapmaker A350 Dual ({nozzle_diameter[0]}/{nozzle_diameter[1]})
; Update: 20240922
; Maintained by : @chrisns
; based on : https://github.com/macdylan/3dp-configs
; Printer : [printer_preset]
; Profile : [print_preset]
; Plate : [plate_name]
; --- initial_extruder: [initial_extruder]
; --- has_wipe_tower: [has_wipe_tower]
; --- total_toolchanges: [total_toolchanges]
; --- T0: {is_extruder_used[(initial_extruder % 2 == 0 ? min(initial_extruder + 0, 63) : max(initial_extruder - 1, 0))]}
; --- T1: {is_extruder_used[(initial_extruder % 2 == 0 ? min(initial_extruder + 1, 63) : max(initial_extruder - 0, 0))]}
T[initial_extruder]
M140 S{first_layer_bed_temperature[initial_extruder]}
; you can clean the nozzle
{if is_extruder_used[(initial_extruder % 2 == 0 ? min(initial_extruder + 0, 63) : max(initial_extruder - (1-0), 0))]}
M104 T{(initial_extruder % 2 == 0 ? min(initial_extruder + 0, 63) : max(initial_extruder - (1-0), 0))} S165
{endif}
{if is_extruder_used[(initial_extruder % 2 == 0 ? min(initial_extruder + 1, 63) : max(initial_extruder - (1-1), 0))]}
M104 T{(initial_extruder % 2 == 0 ? min(initial_extruder + 1, 63) : max(initial_extruder - (1-1), 0))} S165
{endif}
M204 S100
G28 O
M190 R{first_layer_bed_temperature[initial_extruder]}
M83
; if the hot plate temp is greater than 90, adjust the z to 0.06
{if max(hot_plate_temp_initial_layer[initial_extruder], hot_plate_temp[initial_extruder]) >= 90}
G0 Z0.06
G92 Z0 ;reset z
{endif}
{if is_extruder_used[(initial_extruder % 2 == 0 ? min(initial_extruder + 0, 63) : max(initial_extruder - (1-0), 0))]}
; preheat 0
M104 T{(initial_extruder % 2 == 0 ? min(initial_extruder + 0, 63) : max(initial_extruder - (1-0), 0))} S{max(250, min(290, nozzle_temperature_initial_layer[(initial_extruder % 2 == 0 ? min(initial_extruder + 0, 63) : max(initial_extruder - (1-0), 0))] + 15))}
{endif}
{if is_extruder_used[(initial_extruder % 2 == 0 ? min(initial_extruder + 1, 63) : max(initial_extruder - (1-1), 0))]}
; preheat 1
M104 T{(initial_extruder % 2 == 0 ? min(initial_extruder + 1, 63) : max(initial_extruder - (1-1), 0))} S{max(250, min(290, nozzle_temperature_initial_layer[(initial_extruder % 2 == 0 ? min(initial_extruder + 1, 63) : max(initial_extruder - (1-1), 0))] + 15))}
{endif}
; flush initial nozzle
T[initial_extruder]
M104 S{max(250, min(290, nozzle_temperature_initial_layer[(initial_extruder % 2 == 0 ? min(initial_extruder + initial_extruder, 63) : max(initial_extruder - (1-initial_extruder), 0))] + 15))}; common flush temp
G0 Z1.6 F960.0
G0 X{( initial_extruder % 2 == 0 ? 145.0 : 175.0 )} F3420.0
G0 Y0 F3420.0
M109 S{max(250, min(290, nozzle_temperature_initial_layer[(initial_extruder % 2 == 0 ? min(initial_extruder + initial_extruder, 63) : max(initial_extruder - (1-initial_extruder), 0))] + 15))} C2 W1
G1 E20 F80.0
G92 E0
M106 S{min(255, (fan_max_speed[(initial_extruder % 2 == 0 ? min(initial_extruder + initial_extruder, 63) : max(initial_extruder - (1-initial_extruder), 0))] + 10) * 2.55)}
M104 S{nozzle_temperature_initial_layer[(initial_extruder % 2 == 0 ? min(initial_extruder + initial_extruder, 63) : max(initial_extruder - (1-initial_extruder), 0))] + 5}
G1 E12.0 F200
G92 E0
G1 E8.0 Z4.6 F200
G92 E0
G0 Z5.6 F200
M107
G0 X{( initial_extruder % 2 == 0 ? 100.0 : 220.0 )} F3420.0
G0 Z0.3 F960.0
M109 S{nozzle_temperature_initial_layer[(initial_extruder % 2 == 0 ? min(initial_extruder + initial_extruder, 63) : max(initial_extruder - (1-initial_extruder), 0))]} C3 W1
G1 E3 F200
G92 E0
G1 X{( initial_extruder % 2 == 0 ? 0 : 320 )} E6.23628 F3420.0
G92 E0
; ready [plate_name]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment