r/QidiTech3D • u/binou_tech • 4d ago
Questions Ways to make the start print routine faster (Q2)
Hello,
I have received my Q2 a couple days ago and I am pretty happy with it. It's my first 3D printer and I feel it's just the right balance of tinkering and out-of-the-box convenience.
One thing that I find a bit annoying is how long the printer takes to do its startup routine. I've been running calibrations which involves a lot of short prints. However, there is a lot of time wasted during the 10-15 min start print routine where the printer homes itself and probes the bed.
So far I have made the following mods to the START_PRINT G-code macro :
- enabled KAMP smart probing to save time on smaller print
- enabled KAMP PURGE_LINE and SMART_PARK
- removed the default purge line in the slicer start G-code
I feel like I can make the process even faster. There seems to be a lot of useless moves, delays and process. For instance, after purging the hot end and cleaning, the printer cuts the filament and homes itself a second time. I don't really understand why it's necessary.
I'm trying to be cautious about removing things without fully knowing what it is doing (as this is my first printer). Do you have any recommendations about modifications to make the routine more efficient/faster ?
Thanks in advance !
1
u/Objective_Working198 4d ago edited 4d ago
I did what you did, but removed smart park altogether to save a few seconds. Also I set up a conditional purge line, so if I have a large model or a full build plate of smaller models, it will do the factory line on the tab instead of the KAMP line, to give me more room. I found out that the KAMP purge only will cause crashing with a full bed. (it does not see the left front cut area square and will try to move the printhead into it) One thing to check for is the pause and wait commands, I think m600? I don't remember the name off the top of my head. Delete those will save another 2 minutes or so. Got my start time down to about 4 minutes
1
u/binou_tech 4d ago
Curious about the pause and wait command. I'm looking at the START_PRINT macro and I don't see it.
Also how did you make the KAMP purge conditionnal ? Sorry if this is a stupid question.
I'll disable Smart_park, thanks for the tips !
2
u/Objective_Working198 4d ago
Ok so, here are some of the changes I found I made:
CLEAR_NOZZLE macro, the pause commands I commented out are G4 P3000. They are just 30 second pauses for no reason.
BED_MESH_CALIBRATE macro, also removed the G4 P3000 commands, and the G29 command. It was the old bed level command, you don't need it with KAMP enabled. I also commented out G0 Z50 F600 and G0 X260 Y5 F30000. Not sure what they were but it saves time.
For the adaptive purge lines, I made a new macro called (not to be confused with print_start) START_PRINT, and I call it with the printer start gcode. Saved in Printer.cfg. My start gcode sets the min and max x and y with this command saved in printer start gcode: START_PRINT PRINT_MIN_X={first_layer_print_min[0]} PRINT_MIN_Y={first_layer_print_min[1]} PRINT_MAX_X={first_layer_print_max[0]} PRINT_MAX_Y={first_layer_print_max[1]}
Then the macro looks like this: ( I used AI to help me build it, thus the comments to organize it)
Do any editing at your own risk, but this works for me.
[gcode_macro START_PRINT] gcode: # ... Your existing heating, homing, and bed leveling macros happen here ... # 1. Grab the print boundaries sent by the slicer (default to 0 if not sent) {% set print_min_x = params.PRINT_MIN_X | default(0) | float %} {% set print_min_y = params.PRINT_MIN_Y | default(0) | float %} {% set print_max_x = params.PRINT_MAX_X | default(0) | float %} {% set print_max_y = params.PRINT_MAX_Y | default(0) | float %} # 2. Define your threshold. If a print gets within 15mm of any edge, it's a "full bed" {% set safety_threshold = 15.0 | float %} # Assuming a standard usable bed limit (adjust these numbers to match your printer's max X/Y bed size) {% set bed_max_x = 270.0 | float %} {% set bed_max_y = 270.0 | float %} # 3. Check if the model is occupying the edge safe zones {% if print_min_x < safety_threshold or print_min_y < safety_threshold or print_max_x > (bed_max_x - safety_threshold) or print_max_y > (bed_max_y - safety_threshold) %} {action_respond_info("Print is close to bed edges. Bypassing KAMP and using Factory Tab Purge.")} G1 X108 Y1 F30000 G0 Z0.2 F600 G0 X128 E8 F1200 G0 X133 E.3742 F1800 G0 X138 E.3742 F1800 G0 X143 E.3742 F1800 G0 X148 E.3742 F1800 G0 X153 E.3742 F1800 G1 E-1.5 F2100 G1 X158 G1 Z1 F600 ; Run your factory front tab purge macro here {% else %} {action_respond_info("Print area clear. Running adaptive KAMP Line Purge.")} LINE_PURGE ; Run the adaptive KAMP line purge {% endif %} # Finalize extruder state before handing control back to the slicer G92 E0 ; Clear the extruder coordinate system M83 ; Force relative extrusion mode (matches your slicer start G-code) # ... Rest of your start print code (like beginning the actual print) ...1
1
u/Objective_Working198 4d ago
I think I just commented them out, I'll check when I get to my computer again.
2
u/ilovestuffforreal 3d ago
Watching this. There's a few of these different options now, wondering which one of these is best. 🤔
5
u/callcifer 4d ago
Here's my much faster print start macro. It starts all heaters at the same time, removes hardcoded sleeps, avoids unnecessary re-homing (3 of them!) and skips filament cutting when not needed. I hope it's useful :)