Is there one for the A1
to make it fast and mabye wipe the nozal half way through the print or something
So, I got a ācoolā plate (JUUPINE-PLA only) NO HEATING-which isnāt really true. Printed about six models and then the covering started pulling away. Anyway, I need to be able to change the start up g code so that the printing for PLA is nozzle 210 degrees and the plate is 70 degrees. Also, on occasion with a ācoolā plate I need the plate to be at only 1 or 10 degrees . Setting it on the Mini doesnāt seem to work though. So can i and how do I set it in the G Code? Thanks
Hi, thank you a lot for this, which will prove very useful for me.
Would you mind sharing the original gcode you made your modifications on? I saw the information about it being 20240620, and thatās what I have too, but I see large chunks of removed code that donāt match the description, so Iām thinking my original 20240620 version may not be the same as yours. With your original code, I would be able to see exactly the changes you made, and reproduce them on mine.
Thanks!
i see no difference in times what so ever small differences its just quieter but its nice to routine through stuff every time stuff happens to your printer during a print (especially fails) i think this is a waste of time if im perfectly honest. My opinion if it works for you it does
What a time saver, especially if you run many small prints in succession. And this sweet sweet silence⦠Thanks @kylejustknows - youāre a hero.
Iām just now running across this topic. Looks like thereās been great success with it. Are there any gotchas or things to look out for when making this mod?
hello, is there a way to disable poop in 1.31 version?
I rewrote my A1 Mini start routine to cut wait time and noise while keeping safety, using the amazing starting points from this thread. I commented nearly every line with details and reasoning, and I thought others might find it useful.
What it changes
- Earlier XYZ home before any unguarded movements.
- Shorter cleaning routine (short tap + rubber passes).
- Level after bed reaches final temp.
- Brief anti-ooze measures before purge line.
- Carefully managed soft endstops to protect the printer.
- AMS: I donāt have one; AMS command remains unchanged.
Please test carefully
Stay with the printer on first run and keep a stock start-code profile as fallback.
Gist: A1 Mini quick-start G-code: early home, single wipe, level at final bed temp, fast & quiet flow calibration. Ā· GitHub
Code:
Version: v1.2 - Updated 2025-08-26
;===== machine: A1 Mini ===================================
;===== date: 20250826 =====================================
;===== version: 1.2 =======================================
;===== modified by: Cascade Media LLC =====================
;===== start warm-up sequence =============================
M1002 gcode_claim_action : 2 ; status: heating
M1002 set_filament_type:{filament_type[initial_no_support_extruder]}
M104 S160 ; conservative nozzle preheat
M140 S{bed_temperature_initial_layer_single}
G392 S0 ; disable clog detect
M9833.2 ; bambu: set noise/mech params
;===== start printer sound ================================
; sounds removed for quieter startup
;===== initialize machine status ==========================
G90 ; absolute positioning
M83 ; relative extrusion
M211 X1 Y1 Z1 ; enable soft endstops
M630 S0 P0 ; bambu: reset internal state
M204 S6000 ; set default acceleration
M17 X0.7 Y0.9 Z0.5 ; set motor current
M960 S5 P1 ; enable toolhead lamp
M220 S100 ; feedrate to 100%
M221 S100 ; flowrate to 100%
M982.2 S1 ; enable cog noise reduction
M975 S1 ; enable motion gating
M106 P1 S0 ; disable fan while heating
M73.2 R1.0 ; bambu: reset time left magnitude
;===== home and stage printer =============================
M17 ; enable motors
G28 X Y ; safely home X and Y
G0 X55 Y175 F10000 ; move to safe place to home Z
G380 S2 Z5 F1200 ; guarded clearance before homing
G28 Z P0 T300 ; safely home Z
M400 ; wait for movements
M211 S ; push endstop status
M211 X0 Y0 Z0 ; disable soft endstop
G1 Z5 F2000 ; add clearance before move
G1 X0 F10000 ; move to service area
G1 X-13.5 F3000 ; move into wiper
M400
;===== switch material in AMS =============================
M620 M ; enable remap
M620 S[initial_no_support_extruder]A
G392 S1 ; enable clog detect
M1002 gcode_claim_action : 4
M400
M1002 set_filament_type:UNKNOWN
M109 S[nozzle_temperature_initial_layer]
M104 S250
M400
T[initial_no_support_extruder]
G1 X-13.5 F3000
M400
M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}
M109 S250 ; set nozzle to common flush temp
M106 P1 S0
G92 E0
G1 E50 F200
M400
M1002 set_filament_type:{filament_type[initial_no_support_extruder]}
M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}
G92 E0
G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}
M400
M106 P1 S178
G92 E0
G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}
M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}
M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}
G92 E0
G1 E-0.5 F300
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F12000
G1 X-13.5 F3000
M109 S160 ; reset nozzle to expected temperature
G392 S0 ; disable clog detect
M621 S[initial_no_support_extruder]A
;===== build plate detection (flagged) ====================
; skip time heavy vibration tests, periodically calibrate instead
M1002 judge_flag build_plate_detect_flag
M622 S1
G39.4 ; bambu: quick build plate detection
M400
M623
;===== clean nozzle =======================================
M1002 gcode_claim_action : 14 ; status: nozzle cleaning
G90
M83
M106 P1 S255 ; short blast to neck any strands
G4 P800
M106 P1 S0 ; keep fan off during heating
; perform a short knock sequence
G1 E-1.0 F500 ; small retract before taps
G1 Z5 F2000 ; clearance
G0 X90 Y-4 F10000 ; move to the purge area
G380 S3 Z-2 F1200 ; gentle tap on plate
G1 Z2 F2000
G1 X91 F3000
G380 S3 Z-2 F1200
G1 Z2 F2000
G1 X92 F3000
G380 S3 Z-2 F1200
; brush material on rubber
G1 Z5 F2000
G1 X25 Y176 F20000
G1 Z0.2 F2000
G1 Y186
G91
G1 X-30 F20000
G1 Y-2
G1 X27
G1 Y1.5
G1 X-28
G1 Y-2
G1 X30
G1 Y1.5
G1 X-30
G90
G1 Z5 F2000
; brush material on rubber (again)
G1 Z5 F2000
G1 X25 Y177 F20000
G1 Z0.2 F2000
G1 Y187
G91
G1 X-30 F20000
G1 Y-2
G1 X27
G1 Y1.5
G1 X-28
G1 Y-2
G1 X30
G1 Y1.5
G1 X-30
G90
G1 Z5 F2000
; restore protections and establish raw Z reference
M211 R ; restore softend status
G29.2 S0 ; disable ABL for raw Z
G0 X55 Y175 F10000
G28 Z P0 T300
G29.2 S1 ; enable ABL
;===== park and wait for heating ==========================
M1002 gcode_claim_action : 2 ; status: heating
G1 Z5 F2000 ; ensure clearance
G1 X10 Y10 F10000 ; park clear of brush
; set and wait for bed to final temperature
M140 S[bed_temperature_initial_layer_single]
M190 S[bed_temperature_initial_layer_single]
;===== bed leveling (flagged) =============================
M1002 judge_flag g29_before_print_flag
M622 J1
G29.2 S0 ; disable ABL for probing
M1002 gcode_claim_action : 1 ; status: auto bed leveling
G29 A1 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}
M400
M500 ; save mesh
G29.2 S1 ; enable ABL with fresh mesh
M623
;===== bed leveling (not flagged) =========================
M1002 judge_flag g29_before_print_flag
M622 J0
M1002 gcode_claim_action : 13 ; status: homing toolhead
G28 T300 ; permissive temp home
G29.2 S1 ; enable ABL with existing mesh
M623
;===== nozzle load line ===================================
M1002 gcode_claim_action : 2 ; status: heating
M975 S1 ; enable motion gating (explicit)
G90 ; re-assert positioning (explicit)
M83
T1000 ; select local tool
M211 S ; push endstop status
M211 X0 Y0 Z0 ; disable soft endstop
G1 Z5 F2000 ; add clearance before move
G1 X0 F10000 ; move to service area
G1 X-13.5 F3000 ; move into wiper
; minimal prime with micro-retract
G92 E0 ; reset extruded amount before line
G1 E1.2 F500
M400
G1 E-0.05 F1500
M400
M1002 set_filament_type:UNKNOWN ; prepare filament for calibration
; set and wait for nozzle to final temperature
M104 S{nozzle_temperature_initial_layer[initial_extruder]}
M109 S{nozzle_temperature_initial_layer[initial_extruder]}
;===== prepare sensors for calibration ====================
M412 S1 ; enable filament runout detect
M400
M620.3 W1 ; enable filament tangle detect
G392 S0 ; disable clog detect during calibration
M400 S2 P100 ; small wait with sensor settle
;===== flow dynamics calibration (flagged) ================
M1002 set_filament_type:{filament_type[initial_no_support_extruder]}
M1002 judge_flag extrude_cali_flag
M622 J1
M1002 gcode_claim_action : 8 ; status: calibrating extrusion
M900 K0.0 L1000.0 M1.0 ; pressure advance baseline
G90
M83 ; re-assert positioning (explicit)
G1 Z5 F2000 ; safe lift
G0 X68 Y-4 F10000 ; move near start position
G0 Z0.3 F2000 ; move to start position
M400
G0 X88 E10 F{outer_wall_volumetric_speed/(24/20)*60}
G0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}
G0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}
G0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}
G0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}
G0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}
G0 Y0 Z0 F20000 ; finish the patterned sweep
M400
G1 X-13.5 Y0 Z10 F10000 ; park in service area
M400
; primary dynamic extrusion compensation
G1 E10 F{outer_wall_volumetric_speed/2.4*60}
M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]
M106 P1 S180 ; enable fan to neck strand
M400 S7 ; short settle
G1 X0 F20000 ; wipe & shake
G1 X-13.5 F3000
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F12000
G1 X-13.5 F3000
M400
M106 P1 S0 ; disable fan
; retry once if needed
M1002 judge_last_extrude_cali_success
M622 J0
M983 F{outer_wall_volumetric_speed/2.4} A0.3 H[nozzle_diameter]
M106 P1 S180
M400 S7
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F12000
G1 X-13.5 F3000
M400
M106 P1 S0
M623
; final corrections and cleanup
G1 X-13.5 F3000
M400
M984 A0.1 E1 S1 F{outer_wall_volumetric_speed/2.4} H[nozzle_diameter]
M106 P1 S180
M400 S7
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F12000
G1 X-13.5 F3000
M400
M106 P1 S0
M623 ; end flow dynamics calibration
M211 R ; restore soft endstops status
;===== extrude calibration test ===========================
; hold first-layer temp and set modes (explicit)
M109 S{nozzle_temperature_initial_layer[initial_extruder]}
M190 S{bed_temperature_initial_layer_single}
G90
M83
; clear any ooze before calibrating
M106 P1 S180 ; moderate fan for PLA and PETG
M400 S2
G1 E-0.05 F1500
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F20000
G1 X-13.5 F3000
G1 X0 F12000
G1 X-13.5 F3000
M106 P1 S0
M400
; draw short stabilization pattern
G1 Z5 F3000
G0 X68 Y-2.5 F20000
G0 Z0.3 F3000
G0 X88 E10 F{outer_wall_volumetric_speed/(24/20)*60}
G0 X93 E0.374 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}
G0 X98 E0.374 F{outer_wall_volumetric_speed/(0.3*0.5)*60}
G0 X103 E0.374 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}
G0 X108 E0.374 F{outer_wall_volumetric_speed/(0.3*0.5)*60}
G0 X113 E0.374 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}
G0 X115 Z0 F20000
G1 Z5 F3000
M400
;===== for textured pei plate =============================
{if curr_bed_type=="Textured PEI Plate"}
G29.1 Z{-0.02}
{endif}
;===== normalize lights/fans & re-enable protections =====
M960 S1 P0 ; light/laser ch1 off
M960 S2 P0 ; light/laser ch2 off
M960 S5 P0 ; toolhead lamp off
M106 P1 S0 ; part fan off
M106 P2 S0 ; aux fan off
M106 P3 S0 ; chamber fan off
G392 S1 ; re-enable clog detect
G29.2 S1 ; enable ABL for print
;===== final staging =====================================
M1002 gcode_claim_action : 0 ; status: printing
M975 S1 ; keep vibration suppression on
G90
M83
T1000
M211 R ; restore endstop status
M211 X0 Y0 Z0 ; disable soft endstops
M1007 S1 ; bambu: keep enabled
; ===== hand-off to slicer first move =====================
Hello,
What is the purpose of the short tap before cleaning the nozzle?
Because I have the impression that the nozzle is crushing against the plate and may even damage it.
Otherwise, the code works perfectly. Iāve done a few prints with your code and itās OK
Great question! I wondered that myself. It is a way to remove any solidified ooze that has accumulated outside the nozzle. Moving the nozzle into the plate causes it to bend at a 90-degree angle, and then it is brushed off with a double rubber pass.
The G380
command is a guarded move command that uses the sensors to detect a collision. This means the nozzle effectively only goes to exactly 0 instead of into the bed at -2 like it shows. The G380 command uses the same sensors that are used for auto bed leveling and homing routines.
Interesting⦠I tried both versions on my A1 mini (Kyle 1.32 and latest 1.2 from Myzaree).
Both fail the same way - after bed leveling printer starts another leveling (full bed) and then throws this error: āAuto Bed leveling failed; the task have been stoppedā.
Switching back to stock g-code and it works fine
What firmware version are you using?
01.04
Last version before new authorization control.
Iām using Orca slicer. Does it make any difference Bambu Studio vs Orca?
Good version then.
No it shouldnāt because resulting g-code will be identical, regardless whether thatās BS or OS.
Iāve tested those early and then restored normal setup, maybe try checking difference between stock start g-code and the modified ones and incrementally introduce changes to see what breaks?
The scripts use the same G28 commands to initiate bed leveling. If the quick leveling fails, true in your case, then it runs a full leveling.
I ran into a similar issue while testing, but mine ended up being a piece of filament stuck on the underside of the bed, which causes the bed leveling to fail occasionally. It was hard to figure out because the leveling routine would still work most of the time, but every now and then, do what youāre describing.
Another potential cause is canceling the job while bed leveling is occurring. I cancelled in the middle of bed leveling and the next time it started up it collided with the bed pretty hard. I ultimately had to turn off and on the printer before it would get the proper Z height reference.
You might try running the built-in 15-minute auto calibration, which calibrates the vibration, bed leveling, and noise cancelling. The maintenance commands seem to do a full reset on the internal numbers, which made everything run smoother.
Edit: A quick note, I added guarded moves before homing after the damage was caused and it has since prevented any further issues. The original code has a similar up and down movement before it starts, but can collide when starting at max height.
Thx. I got it working
I moved my printer to another room and was also switching between textured and smoth PEI plate. Maybe something happened during the move that affected leveling. After cycling the power on the printer and calibration from maintenance menu it works.
Awesome! Glad to hear that it works. Iāve had nothing but smooth sailing.
Found the problem - smooth PEI plate.
Bed leveling fails with that plate.
Stock bambu profile works ok.
Smooth plate is some off brand bought on Aliexpress, worked without problem until now.
I do not see any warping or damage on the plate.
Original textured PEI plate I got with printer woks fine with this start g-code
Oh interesting, I wonder if that is because of the build plate detection. There is some specific handling for the textured plate, but that happens after bed leveling. If it is failing at bed leveling, then it would be one of the bootstrapping commands.
I think the culprit is this section:
;===== build plate detection (flagged) ====================
; skip time heavy vibration tests, periodically calibrate instead
M1002 judge_flag build_plate_detect_flag
M622 S1
G39.4 ; bambu: quick build plate detection
M400
M623
Would you mind trying to turn off build plate detection in Bambu Studio? It is found at Device > Print Options (upper right) > First option. That disables the build plate detection code and would help narrow down the issue.